设计模式专题系列: 设计模式
中介者模式
使用中介者模式来集中相关对象之间复杂的沟通和控制方式。
- 每个对象都会在自己的状态改变时,告诉中介者
- 每个对象都会对中介者锁发出的请求作出回应
没有中介者的情况之下,所有的对象都需要认识其他对象,也即对象之间是紧耦合的.
当有了中介者后,对象之间不需要认识,只需要跟中介者打交道,这样一来对象之间就被解耦了.
中介者包含了整个系统的控制逻辑.
用途:
- 中介者常常被用来协调相关的GUI组件
这让我想到了Android中的Activity,在Activity中包含了各种View以及Adapter等对象,Activity也包含了整个系统的控制逻辑,那么我想,Activity就是一个中介者吧!
优点:
- 通过将对象彼此解耦,可以增加对象的复用性
- 通过将控制逻辑集中,可以简化系统维护
- 可以让对象之间所传递的消息变得简单而且大幅减少
缺点:
如果设计不当,中介者本身会变得过于复杂
想想Activity,如果职责一多,两三千行代码,就非常复杂了,缺点也显而易见了