中介者模式

个人博客

http://www.milovetingting.cn

中介者模式

中介者模式也称为调解者模式或调停模式。

模式定义

中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显影响。

使用场景

当对象间交互操作很多且每个对象的行为操作都依赖彼此时,为防止在修改一个对象的行为时,同时涉及修改很多其他对象的行为。可采用中介者模式来解决耦合的问题。将对象间多对多关系变成一对多的问题。

简单使用

定义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
posted @ 2020-02-15 16:00  milovetingting  阅读(114)  评论(0编辑  收藏  举报