代码之家  ›  专栏  ›  技术社区  ›  Jess

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

oop
  •  1
  • Jess  · 技术社区  · 15 年前

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

    我几乎百分之百地肯定这就是我将要做的事情,但我的一部分人希望将派生类放到基类项目中。有什么好的理由支持/反对这个?

    4 回复  |  直到 15 年前
        1
  •  2
  •   Arnold Spence    15 年前

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

    如果你找到了 第三的 如果需要再次这样做,那么您可以查看其中是否有一个相当有用的子类。不要因为过早发现可重用的抽象而分心。

        2
  •  1
  •   Mark H    15 年前

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

    通常是因为您希望在多个项目中使用它。

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

        3
  •  1
  •   Conrad Frix    15 年前

    如果计划使用其他exe,请使用派生类,如果该类存在,而不是在exe中,则会很有帮助。

        4
  •  0
  •   Jess    15 年前

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