【问题标题】:Organizing code in C# projects [closed]在 C# 项目中组织代码 [关闭]
【发布时间】:2014-02-10 10:36:29
【问题描述】:

我有一个界面:

public interface IMyObject
{
}

我有一个抽象类:

public abstract class MyObject : IMyObject
{
}

我有一堂课:

public class MyExtendedObject : MyObject
{
}

在我的项目中有很多这样的接口、抽象和具体。我想知道从命名空间(项目中的文件夹)的角度组织代码的最佳方案是什么。我应该将所有相关的东西放在同一个文件夹下还是应该创建,例如抽象类的 Base 命名空间、接口的 Interfaces 命名空间和扩展对象的另一个命名空间?

【问题讨论】:

  • “最好”的方式是你与队友达成一致的方式
  • 我自己开发项目,没有队友。但我也考虑将我的库作为开源托管在 CodePlex 中,因为我认为与地球上的人们分享是值得的。

标签: c# project-organization


【解决方案1】:

最好的方式是主观的和项目相关的。

就像一个建议我会说:

移入单独的文件夹接口和抽象类,因此将它们与具体实现类分开。

+ Absrtacts 
     -> IMyObject.cs 
     -> MyObject.cs 

+ Concrete 
     -> MyExtendedObject.cs

【讨论】:

    【解决方案2】:

    Robert C. Martin(敏捷的创始人之一,现在是 Software Craftmanship 运动)有一个完整的演讲 really worth watching

    它基于 Ivar Jacobson 的 Object Oriented Software Engineering: A Use Case Driven Approach

    用几句话概括一下,您的项目结构应该反映它所建模的内容,而不是您使用的技术或特定语言结构。对于您的抽象/接口/具体类,这意味着使用将所有抽象类放在文件夹/命名空间/程序集中的结构,在另一个文件夹/命名空间/程序集中的具体类不是要走的路(甚至虽然找到采用这种方法的项目很常见)。

    【讨论】:

    • 有趣的家伙,很好的教育视频。真的值得一看。但我想在这个问题上没有常识,因为你的思维方式与@Tigran 不同。我希望看到更多的 cmets 做出决定,谢谢。
    猜你喜欢
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    • 2015-03-17
    • 2011-04-16
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多