![]() |
1
1
这完全取决于你未来对Imessenger的计划。我个人并不认为在同一个程序集中拥有接口和几个示例实现是一件坏事。如果有人想要提供一个新的IMessenger实现,他们将不得不在另一个程序集中进行,并且在引入您的程序集的过程中,他们将收到电子邮件、smsmsmmessage等。对于轻量级程序集,我认为这不是什么大问题,因为它节省了您将“接口”和“实现”同时引用为每次你想用的时候都会用到。 如果您的实现类引用了与您的组织相关的其他代码或任何您不希望公开的代码,那么将imessenger分离到它自己的程序集中并根据需要分发它会更有意义。 |
![]() |
2
1
引用(从而耦合)应用程序层类到消息库没有任何错误。只要您的消息库是独立的,并且不知道它的用户,就可以了。 此外,不要仅仅因为体系结构的事实而过度设计。它应该有一个目标,而且收益应该大于成本。 |
![]() |
3
0
我对你的问题的回答:
如果您使用的是IOC容器,请注入依赖项,不要将您的应用程序与基础结构实现结合起来。 我的实现是将IMessenger接口放在应用程序层中,以便允许我的应用程序对象与接口进行对话,不管它的实现是什么。我将在一个单独的程序集中发送普通电子邮件和短信息,它们实现了Imessenger。显然,注入是由IOC容器执行的。 应用层不应该知道基础结构层。 这是一个很好的页面,可以看到这种设计: Hexagonal Architecture . |
![]() |
A B · C#Excel自动调整列避免长文本时出错 5 月前 |
![]() |
pseudodev · 失败的测试仅显示堆栈跟踪,不显示完整日志 5 月前 |
![]() |
CactusCake · if语句中应有分号 6 月前 |
![]() |
Bin4ry · 子文件夹中的应用程序设置 7 月前 |