个人博客
中介者模式
中介者模式也称为调解者模式或调停模式。
模式定义
中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显影响。
使用场景
当对象间交互操作很多且每个对象的行为操作都依赖彼此时,为防止在修改一个对象的行为时,同时涉及修改很多其他对象的行为。可采用中介者模式来解决耦合的问题。将对象间多对多关系变成一对多的问题。
简单使用
定义Mediator
public abstract class Mediator {
public void handleMessage(Customer customer) {
if (customer instanceof Seller) {
sendMessageToBuyer();
} else if (customer instanceof Buyer) {
sendMessageToSeller();
}
}
public abstract void sendMessageToSeller();
public abstract void sendMessageToBuyer();
}
定义Customer
public abstract class Customer {
protected Mediator mediator;
public Customer(Mediator mediator) {
this.mediator = mediator;
}
public abstract void action();
}
定义Mediator实现类
public class MediatorImpl extends Mediator {
@Override
public void sendMessageToSeller() {
System.out.println("转发Buyer消息给Seller");
}
@Override
public void sendMessageToBuyer() {
System.out.println("转发Seller消息给Buyer");
}
}
定义Customer实现类
public class Buyer extends Customer {
public Buyer(Mediator mediator) {
super(mediator);
}
@Override
public void action() {
mediator.handleMessage(this);
}
}
public class Seller extends Customer {
public Seller(Mediator mediator) {
super(mediator);
}
@Override
public void action() {
mediator.handleMessage(this);
}
}
调用
public class Main {
public static void main(String[] args) {
MediatorImpl mediator = new MediatorImpl();
Buyer buyer = new Buyer(mediator);
Seller seller = new Seller(mediator);
buyer.action();
seller.action();
}
}
输出结果
转发Buyer消息给Seller
转发Seller消息给Buyer
网友评论