【问题标题】:How to organize Interfaces/classes/implementations in the project如何组织项目中的接口/类/实现
【发布时间】:2011-11-27 11:20:59
【问题描述】:

我发现了一些关于如何组织项目的问题(命名空间、每个文件一个类等),但更具体的一点是,您如何组织密切相关的“事物”?

我通常会得到:

  • 一个接口 IMyStuff
  • 一个基础(有时是抽象)类,为该接口提供基本骨架:BaseMyStuff
  • 实现类 MyStuffWithBellsAndWhistles, MyStuffWithChocolateFlavours

它们应该在同一个命名空间中似乎是有道理的,但是如果我将所有这些文件放在同一个文件夹中,感觉我的文件夹开始有点过度拥挤(实际上不是一个真正的问题,但是感觉很奇怪)。

可以在同一个文件中同时定义接口和基类吗?

或者可以将这些东西分组到子文件夹中,但在同一个命名空间中?像这样:

-MyNamespace
 |-Interfaces
   | -IMyStuff
   | -IMyOtherStuff
 |-BaseClasses
   | -BaseMyStuff
   | -BaseMyOtherStuff
 |-Implementation
   | -MyStuffWithAwesomeBehaviour
   | -MyStuffWithGreatUsefulness
   | -MyOtherStuffSoNeatYouWillCry

关于这种组织的“最佳做法”是什么?

【问题讨论】:

标签: .net projects-and-solutions file-organization


【解决方案1】:

如果接口的目的是抽象实现并允许接口作者不知道的替代实现,那么我建议将它们保存在单独的项目文件中。在构建单元测试项目或接口的其他使用者时,这将允许他们创建一个项目引用,该引用仅拖入接口而不是实现。这意味着具体类的替代实现永远不需要引用原始的 concreate 表示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-10
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 2018-06-12
    • 2011-08-10
    • 1970-01-01
    相关资源
    最近更新 更多