单选题
一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解。采用______模式,用一个中介对象来封装一系列的对象交互,从而使各对象不需要显式地相互引用,使其耦合松散,而且可以独立地改变它们之间的交互。此模式与______模式是相互竞争的模式,主要差别是:前者的中介对象封装了其他对象间的通信,而后者通过引入其他对象来分布通信。
【正确答案】
D
【答案解析】[解析] 中介者模式包装了一系列对象相互作用的方式,使得这些对象不必互相明显引用,从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对象之间的相互作用,从而保证这些相互作用可以彼此独立地变化。在中介者模式中,所有的成员对象者可以协调工作,但是又不直接相互管理。这些对象都与一个处于中心地位的中介者对象发生紧密的关系,由这个中介者对象进行协调工作。这个协调者对象叫做中介者(Mediator),而中介者所协调的成员对象称做同事(Colleague)对象。
在观察者模式中,一个目标物件管理相依于它的观察者物件,并且在它本身的状态改变时主动发出通知,这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。