1

我是 Java 模式的新手,我正试图弄清楚它如何适应现实世界。大多数关于模式的网站和书籍似乎都是由非程序员编写的。

我正在尝试定义模式如何帮助耦合,这是我迄今为止的定义。我想知道的是哪些模式对松散耦合真正有用,它们是否值得努力。另外,到目前为止我的定义/理解是否正确:

“耦合是程度,两个或多个不同的对象,相互访问和/或交互。”

两个对象之间的紧密耦合:

  • 引用/实例化:在许多地方,在一个或两个对象(多对多引用)中对另一个对象的许多尊重

  • 复杂性:通常很多参数需要访问函数,或者访问不同函数的顺序。相关对象没有通用接口。

  • 责任:做应该在被访问的对象或另一个对象中完成的工作。直接访问嵌套函数。

  • 性能:有时需要紧密耦合的最大原因,但应尽量减少。

两个对象之间的松散耦合:

  • 引用/实例化:很少,但在一个对象中至少有一个引用,但不是在两个(一对少数引用)
    中有帮助的模式:工厂、单例、生成器、复合

  • 复杂性:很少,定义明确的参数(通常由接口定义),具有最少可能的功能序列(exp. open, fetch, close)
    有帮助的模式:适配器,桥接器,装饰器,外观,命令 

  • 责任:只做对象负责做的工作,并尝试只访问下一层的功能。
    有帮助的模式:装饰器、责任链、MVC

  • 性能:确定性能需要在哪里,并将这些类放在一起——甚至可以作为嵌套类,根据定义紧密耦合。

4

1 回答 1

0

被认为最适合松散耦合的模式是 IoC:控制反转,使用依赖注入实现。

基本上,如果一个类 Alfa 需要另一个类 Beta 的对象,您必须手动实例化 Beta 并将其传递给 Alfa(注入):

Beta myDependencyObject ....;
Alfa myObjectWithDependency(myDependencyObject);

通过这种方式,您暴露了 Alfa 对 Beta 的依赖性。

于 2013-10-17T11:22:22.377 回答