如何在一个.NET类库中分离概念

时间:2016-10-23 23:41:47

标签: c# .net .net-assembly class-library conceptual

我喜欢在将解决方案拆分为多个类库时如何分离概念。例如:

System.IO.csproj,            Stream class
System.IO.Net.csproj,        NetworkStream class
System.IO.Filesystem.csproj, FileStream class
System.IO.Extensions.csproj, bunch of classes which builds on top of System.IO

通过这种方式,我可以非常确定Stream类对NetworkStream一无所知,这是应该的方式。当有人试图在NetworkStream类中创建涉及Stream的hack时,他会收到编译错误,完美!

以类似的方式,当有人试图向Stream添加一些方法时,它会从Extensions中作为参数,他也会得到编译错误,太棒了!人们有时会尝试创造永远不存在的依赖。

有没有办法在一个类库中以类似的方式分隔概念?如果不强制执行,是否至少有一种方法可以对其进行测试?

根据我的经验,多个类库效果最好,并且很容易管理它的引用(这是强制执行),但是拥有大量类库似乎是不切实际的。我经常有一些核心代码,然后有很多扩展,然后是第二级扩展,它使用其他扩展等。在理想世界中,每个扩展将与另一个分开。

然后是使用该功能的应用程序或库,从它的角度来看,当一切都是一个类库时,它是最好的。

0 个答案:

没有答案