中介者模式

个人博客

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

你可能感兴趣的:(中介者模式)