美文网首页
中介者模式

中介者模式

作者: milovetingting | 来源:发表于2020-02-15 15:58 被阅读0次

    个人博客

    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
    

    相关文章

      网友评论

          本文标题:中介者模式

          本文链接:https://www.haomeiwen.com/subject/enqyfhtx.html