/**
* 中介者模式
*/
public class Main {
public static void main(String[] args) {
Mediator mediator = new Mediator();
mediator.notice("ObjectA");
mediator.notice("ObjectB");
}
}
public interface IAction {
void action();
}
public interface IMediator {
void notice(String content);
}
public class ObjectA implements IAction {
@Override
public void action() {
System.out.println("ObjectA action");
}
}
public class ObjectB implements IAction {
@Override
public void action() {
System.out.println("ObjectB action");
}
}
public class Mediator implements IMediator {
private ObjectA objectA;
private ObjectB objectB;
public Mediator() {
objectA = new ObjectA();
objectB = new ObjectB();
}
@Override
public void notice(String content) {
if ("ObjectA".equals(content)) {
objectA.action();
} else if ("ObjectB".equals(content)) {
objectB.action();
}
}
}
问题:
多个类之间发消息,直观上就是一个对象调用另外一个对象的方法,但是这样的话耦合度也就大了。
用法:
一切都是对象,可以把交互发消息看成是一个对象抽象出来,这样多个对象的协调调用就通过这个对象完成了,对象本身只负责状态,交互的事情都在这个中介者完成了,这样各对象的职责也比较清晰。