松耦合设计中的常见定义

我正在尝试整合一个非常精细的松散耦合设计。 但我无法决定如何处理常见的定义。 现在我通过添加它作为外部DLL来分离关注。通过注入和接口,我的域可以使用我的业务逻辑而无需了解实现。 我遇到的问题是,为了使我的所有组件松散耦合,他们需要实现相同的接口。我的解决方案是一个单独的项目(dll),只有所有的定义。 这开始很好,但似乎变得臃肿,并将所有代码链接在这一个dll依赖上。 什么是最务实的方式? 谢谢!     
已邀请:
编辑 对不起,我想我最初误解了你的问题。因此,您有一个包含接口的程序集,并且您在其他程序集中使用DI创建依赖对象。我倾向于在我的应用程序中创建一个核心程序集,其中包含应用程序的主要行为(智能实体,枚举和接口)。这个程序集依赖于很少但很重要的依赖于应用程序的其余部分。以这个项目为例 - whocanhelpme.codeplex.com。你可以称这个核心膨胀,但根据定义,它需要非常丰富。 您可能会发现许多抽象单元遵循常见的设计模式。这是一个网站,可以很好地描述每个网站 - 您可以从这些网站中获取名称(观察者,工厂,适配器等): http://www.dofactory.com/Patterns/Patterns.aspx     
我想说,该层应该只知道下一层及其接口,因此可以将接口与它们的实现放在一起,然后在链中的层(程序集)之间添加引用。 您可以使用bootstrapper模式配置DI并通过定位器解析。关于诸如日志记录,缓存等交叉问题,应该为每个层引用单独的程序集。在这里,您也可以使用合同,并且将来可能会使用另一个实施相同合同的组件来替换这些交叉功能。 希望这至少有点帮助:)     

要回复问题请先登录注册