tsi*_*lar 5 .net file-organization projects-and-solutions
我发现了一些关于如何组织项目的问题(命名空间,每个文件一个类等),但更具体的说明,你如何组织非常紧密相关的"事物"?
我通常最终得到:
IMyStuffBaseMyStuffMyStuffWithBellsAndWhistles, MyStuffWithChocolateFlavours似乎有意义的是它们应该在同一个命名空间中,但是如果我将所有这些文件放在同一个文件夹中(感觉不是真正的问题,但感觉很奇怪),感觉我的文件夹开始有点过于拥挤).
可以在同一个文件中定义接口和基类吗?
或者可以将这些东西分组到子文件夹中,但是在同一名称空间中?像这样 :
-MyNamespace
|-Interfaces
| -IMyStuff
| -IMyOtherStuff
|-BaseClasses
| -BaseMyStuff
| -BaseMyOtherStuff
|-Implementation
| -MyStuffWithAwesomeBehaviour
| -MyStuffWithGreatUsefulness
| -MyOtherStuffSoNeatYouWillCry
Run Code Online (Sandbox Code Playgroud)
关于这种组织的"最佳实践"是什么?
如果接口的目的是抽象实现并允许接口作者不知道的替代实现,那么我建议将它们保存在单独的项目文件中。当构建单元测试项目或接口的其他使用者时,这将允许他们创建一个仅拖入接口而不拖入实现的项目引用。这意味着具体类的替代实现永远不需要引用原始具体表示。