我很好奇开发人员关于类接口(interface)应该放在 .NET 类库中的什么位置的意见/做法。它们是否应该包含在解决方案中自己的专用库中,例如 MyCompany.AccountPackage.Interfaces?
他们应该有自己的命名空间吗? MyCompany.AccountPackage.MasterAccounts.Interfaces?
还有其他想法/意见吗?
是否有任何好的指南演示如何构建 .Net 库(或更好的解决方案),一般显示标准库中通常应公开哪些类/接口(interface)。
谢谢,
d.
简答:
接口(interface)应该靠近它们实现的地方。
至少一些 BCL 会这样做 - IEnumerable<T>
住在System.Collections.Generic
命名空间,例如。
稍微长一点的答案:
这取决于接口(interface)的用途。
是否为第三方提供插件接口(interface)(a-la the provider model or MEF)?
如果是这样,一个单独的程序集就有意义了,所以第三方需要导入的就是这个程序集。
它是内部的,用于测试和 IoC 目的吗?
我认为,让它靠近实现在组织上是有意义的,并且有助于使代码与界面保持同步。