说明:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。(缺点,中介类需要管理所有同事实现类)
需求:国家与国家通信
解决方式:
a. 定义中介者抽象,定义通信方法;
b. 定义同事抽象方法,声明中介者,构造注入中介者,定义发消息抽象方法;
c. 定义中介者实现类,声明同事实现1、2,实现通信方法;
d. 分别定义同事实现1、2类,实现发消息方法,方法内调用中介者的通信方法;
e. 客户端实例化中介者实现类、同事实现1、同事实现2,同事实现1调用发消息方法。
需求变更:新增国家进行通信
解决方式:
新增同事实现3
修改中介者实现
类图: