在基类库或新项目中定义继承的类

时间:2010-08-09 21:00:08

标签: oop

我在自己的命名空间/库中编写了一个抽象基类TCPIP服务器。目前,我在解决方案的.exe项目中有派生类(更具体的TCPIP服务器;使用DataHandler)。

我几乎100%肯定这是我将要去的方式,但我的一部分想要将派生类放在基类项目中。对此有什么好的理由?

4 个答案:

答案 0 :(得分:2)

我相信YAGNIKISSThe Rule Of Three适用于此处。如果您没有立即尝试重用派生类的计划,请将其保留在应用程序命名空间中。如果您稍后发现第二个项目/应用程序可以使用类似派生类的内容,那么请遵循您的计划并将其用作“模板”,以通过剪切和粘贴创建另一个类似的派生类。

如果你发现第三次场合再次这样做,那么你可以看看是否有一个相当有用的子类坐在那里。不要过早分散试图发现可重复使用的抽象的注意力。

答案 1 :(得分:1)

“为什么我需要基类库”?

通常是因为你想在多个项目中使用它。

如果是这种情况,您是否需要在其他项目中使用派生类?

答案 2 :(得分:1)

如果您计划让其他exe使用您的派生类,那么它是有用的,如果它在那里而不是在exe中。

答案 3 :(得分:0)

我支持这种方法的理由是,如果我将dervied类放在.exe命名空间中,我将可以访问所有这些类(例如数据队列)。但是,如果我将派生类放在基础项目中,我必须授予对.exe命名空间中所有类的访问权限,以便只使用其中一个(使用DotExeNamespace;)。