定义:?(Mediator Pattern)
用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。
类图:
启示:
最近两年,楼市疯狂,房价涨的离谱。为了预防楼市泡沫,中央出台一项项政策进行调控。在这样一个现实场景中,共有三个角色,买房者,房地产商,住建局。
买房者关注房地厂商的楼盘及房价,决定是否买房;
房地厂商关注买方市场,是否需要新建楼盘;
住建局就来协调买方与卖方市场,限购限建。
三个角色相互依赖,相互交互。耦合性比较紧,如何来解耦呢?中介者来帮忙。
中介是谁呢?就像你去买房,你肯定找中介啊,中介无所不知,他们即知道房地厂商有哪些楼盘,又了解买房市场的需求,同时也很熟悉国家的楼市政策。
代码:
/// <summary> /// 抽象角色(模块) /// 主要实现中介的依赖注入 /// </summary> public abstract class Role { protected AbstractMediator mediator; public Role(AbstractMediator mediator) { this.mediator = mediator; } }