我创建了一个提供消息、电子邮件和短信的类库(程序集)。该类库定义了一个接口 IMessenger,EmailMessage 和 SmsMessage 类都实现了该接口。
我认为这是一个通用库,它将成为我的基础设施层的一部分,并且可以/可以在任何开发中使用。
现在,在我的应用程序层中,我有一个需要使用消息传递组件的类,我显然想使用我创建的消息传递库。此外,我将使用 IoC 容器 (Spring.net) 来允许我注入我的实现,即电子邮件或短信。
因此,我想针对我的应用程序层类中的接口进行编程,那么我是否需要从我的应用程序层类中引用我的消息类库?
这是否将我的应用程序层类与我的消息类库紧密耦合?
我应该在单独的库中定义接口 - IMessage 吗?
或者我应该做点别的事情?
这完全取决于您对 IMessenger 的未来计划。就我个人而言,我并不认为在同一个程序集中拥有接口以及一些示例实现是一件坏事。如果有人想要提供 IMessenger 的新实现,他们将不得不在另一个程序集中执行此操作,并且在引入您的程序集的过程中,他们将获得 EmailMessage、SmsMessage 等。对于轻量级程序集,我认为这没什么大不了的,因为它可以节省您每次想要使用“接口”和“实现”程序集时都引用它们的精力。
如果您的实现类引用与您的组织相关的其他代码或您不想公开的任何内容,那么将 IMessenger 分离到其自己的程序集中并根据需要进行分发会更有意义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)