11

关于接口和实现它们的类如何组织解决方案/项目是否有标准?我正在开发一个 MVP、DDD 应用程序,并且很想听听关于其他人如何布局他们的项目以及他们为什么这样做的反馈。谢谢!!

4

3 回答 3

12

他们应该生活在对他们来说合乎逻辑的命名空间中;这意味着对于它们是否应该驻留在同一个命名空间中没有明确的规则。您会发现相对抽象的名称空间通常不会与它们的实现并存,而与其实现者更多 1:1 的接口更有可能彼此并存。

一个更重要的考虑是保持接口可重复使用——通常这意味着更多地考虑与接口一起进入程序集的内容,而不是命名空间。

于 2011-01-26T02:17:25.560 回答
4

检查 Martin Fowler 在分离接口上的模式,它可能会帮助您决定将它们放在哪里。

于 2011-01-26T02:18:03.643 回答
1

当然没有令人信服的理由这样做。

事实上,如果接口的用户不需要知道具体的类,如果有多个实现,如果定义接口的组与实现某个版本的组不同(所有这些都是有效的情况) ),那么将实现和接口命名空间分开可能是明智之举。

我不太确定 C#,但在 Java 中,包成员身份是强制方法可见性的重要组织模式。如果您想使用包私有的东西,您基本上必须将实现类组合在同一个包中(这样您可能无法将它们与接口放在一起)。

于 2011-01-26T02:18:10.780 回答