- 目的 : 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
- 核心 : 定义中介者接口声明通信方法。具体中介者协调各同事对象(Colleague)的交互,同事对象只与中介者通信。
- 场景 : 常用于处理多个对象之间的复杂交互,如聊天室系统中,所有用户通过服务器(中介者)发送和接收消息,简化了客户端间的直接通信。
首先有个工作接口,声明了工作方法、
java
package mediator;
public interface IWork {
void work();
}
然后有若干具体工作的类实现工作接口
java
public class XmlPreview implements IWork {
@Override
public void work() {
// XML预览相关工作
System.out.println("XML预览处理完成");
}
}
public class XmlCode implements IWork {
@Override
public void work() {
// XML编码相关工作
System.out.println("XML编码处理完成");
}
}
接着就是我们的中介接口了
java
package mediator;
public interface IMediator {
// 创建中介者管理的组件
public void creareMediator();
// 协调各个组件工作
public void work();
}
具体中介者实现类
java
package mediator;
public class Mediator implements IMediator {
private XmlCode xmlCode;
private XmlPreview xmlPreview;
@Override
public void creareMediator() { // 初始化管理的组件
this.xmlCode = new XmlCode(); //延迟初始化,组合
this.xmlPreview = new XmlPreview();
}
@Override
public void work() { // 协调各个组件工作
System.out.println("中介者开始协调工作...");
this.xmlPreview.work();
this.xmlCode.work();
System.out.println("所有工作处理完成");
}
}
函数入口
java
package mediator;
public class MainTest {
public static void main(String[] args) {
IMediator mediator = new Mediator(); // 创建中介者
mediator.creareMediator(); // 初始化中介者管理的组件
mediator.work(); // 通过中介者协调工作
}
}
终端输出
中介者开始协调工作...
XML预览处理完成
XML编码处理完成
所有工作处理完成
