设计模式应用场景
当对象之间的关系特别复杂时,难以维护,那么可以定义一个Mediator来管理这些关系
让所有的对象全部和Mediator对接,不直接访问其他对象
实现方式
调停者模式也称为中介模式,用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
代码实现
1.创建被协调者需要继承的类
public abstract class MediatorObject {
//持有一个调停者对象
private Mediator mediator;
/**
* 构造函数传入具体的调停者对象
*/
public MediatorObject(Mediator mediator){
this.mediator = mediator;
}
/**
* 获取当前调停者对象
*/
public Mediator getMediator() {
return mediator;
}
}
2.创建A和B两个类,实现MediatorObject
public class A extends MediatorObject {
int sum = 1;
public A(Mediator mediator) {
super(mediator);
}
}
public class B extends MediatorObject {
int sum = 2;
public B(Mediator mediator) {
super(mediator);
}
}
3.创建调停者Mediator
public class Mediator{
private A a;
private B b;
public void setA(A a) {
this.a = a;
}
public void setB(B b) {
this.b = b;
}
/*
* A和B的关系处理方法
* */
public int sum(){
return a.sum+b.sum;
}
}
5.main方法测试
public static void main(String[] args) {
Mediator mediator = new Mediator();
A a = new A(mediator);
B b = new B(mediator);
mediator.setA(a);
mediator.setB(b);
System.out.println(mediator.sum());
}
此处AB两个类就是我们需要调停的对象,Mediator中的sum方法就是为了避免A和B的交互
测试结果输出3,测试成功