最近我看到很多关于如何构建松耦合应用程序的博客文章。在创建松散耦合的应用程序时,你最常使用哪些模式?依赖注入?控制反转?
最近我看到很多关于如何构建松耦合应用程序的博客文章。在创建松散耦合的应用程序时,你最常使用哪些模式?依赖注入?控制反转?
模型 - 视图 - 控制器(Model-View-Controller)。
另外,阻止我编写耦合应用程序的因素不仅仅是设计模式:
命名。如果我无法轻松地为我的类想出一个名称,那么它要么什么都不做,要么做了太多事情。
可测试性。如果我无法轻松地模拟我的类的依赖项,那么它就是一种耦合设计。
一些SOA相关的模式(例如企业服务总线)在更高层次上提供抽象,支持跨业务服务和技术服务的关注点分离。然后通过引入代理或总线来支持服务之间的松耦合,以解耦方案中的服务。
我很惊讶这还没有被提到 - 策略允许您避免创建过多了解域模型中不同类型的类。每个策略负责编码涉及特定类型的特定交互。这避免了创建一个了解许多其他类型及其各自实现细节的主类型。
来自维基百科:
策略模式使用组合而非继承。在策略模式中,行为被定义为单独的接口和实现这些接口的具体类。具体类封装这些接口。这样可以更好地解耦行为和使用行为的类之间的关系。行为可以更改而不会破坏使用它的类,并且类可以通过更改所使用的特定实现来在行为之间切换,而无需进行任何重大的代码更改。行为也可以在运行时以及设计时更改。
是的,重要的是依赖注入和控制反转,但我们不要忘记抽象工厂和注册表。
依赖注入是一种控制反转的形式。
Spring框架拥有大量的Java程序员,它也有.NET实现。