2014-02-10 105 views
3

我有一个接口:组织代码

public interface IMyObject 
{ 
} 

我有一个抽象类:

public abstract class MyObject : IMyObject 
{ 
} 

而且我有一个类:

public class MyExtendedObject : MyObject 
{ 
} 

有许多接口,在我的项目中这样的摘要和混凝土。我想知道在命名空间(项目中的文件夹)角度组织代码的最佳场景是什么。我是否应该将所有相关的东西放在同一个文件夹下,或者应该创建一个抽象类的Base名称空间,接口的名称空间和扩展对象的另一个名称空间?

+0

“最好”的方式是你与你的队友达成一致 – Alex

+0

我自己开发项目,没有队友。但我也考虑将我的图书馆作为开放源码托管在CodePlex中,因为我认为值得与地球上的人分享。 – mnyarar

回答

5

最好方式是主观和依赖。

像suggession我会说:

在单独的文件夹接口和抽象类的举动,所以从具体实现类将它们分开。

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

+ Concrete 
    -> MyExtendedObject.cs 
3

罗伯特·马丁(雅居乐的创始人,现在的软件手工艺品运动之一)有一个整个谈话是really worth watching

它是基于伊瓦尔·雅各布森的Object Oriented Software Engineering: A Use Case Driven Approach

要用几句话总结一下,你的项目结构应该反映它的模型,而不是你使用的技术或特定的语言结构。在抽象/接口/具体类的情况下,这意味着使用一个将所有抽象类放在一个文件夹/ namspace/assembly中的结构,在另一个文件夹/名称空间/程序集中的具体类不是要走的路(甚至尽管找到采用这种方法的项目是很常见的)。

+0

有趣的家伙,良好的教育视频。真的值得一看。但我想这个问题上没有常识,因为你的思维方式不同于@Tigran。我希望看到更多评论来做出决定,谢谢。 – mnyarar