Java设计模式-19、中介者模式-协调多个对象之间的交互

第19章:中介者模式-协调多个对象之间的交互

定义:

中介者模式(Mediator Pattern):用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

image-20201122112819284

同事对象之间

image-20201122113513907

使用中介者

image-20201122113545995

结构:

image-20201122113647889

代码实现:

//抽象中介者
abstract class Mediator {
   
    protected ArrayList<Colleague> colleagues; //用于存储同事对象

    //注册方法,用于增加同事对象
    public void register(Colleague colleague) {
   
        colleagues.add(colleague);
    }

    //声明抽象的业务方法
    public abstract void operation();
}
//具体中介者
class ConcreteMediator extends Mediator {
   
    //实现业务方法,封装同事之间的调用
    public void operation() {
   
        //......
        ((Colleague) (colleagues.get(0))).method1(); //通过中介者调用同事类的方法
        //......
    }
}
//抽象同事类
abstract class Colleague {
   
    protected Mediator mediator; //维持一个抽象中介者的引用

    public Colleague(Mediator mediator) {
   
        this.mediator = mediator;
    }

    public abstract void method1(); //声明自身方法,处理自己的行为

    //定义依赖方法,与中介者进行通信
    public void method2() {
   
        mediator.operation();
    }
}
//具体同事类
class ConcreteColleague extends Colleague {
   
    public ConcreteColleague(Mediator mediator) {
   
        super(mediator);
    }

    //实现自身方法
    public void method1() {
   
        //......
    }
}

应用实例:

CRM系统,客户信息管理窗口

image-20201122112950273

image-20201122113111168

package wgg;

//按钮类
class Button {
   
    private List list;
    private ComboBox cb;
    private TextBox tb;
    //......

    //界面组件的交互
    public void change() {
   
        list.update();
        cb.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java设计模式中的行为模式共有11种,它们分别是策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式和解释器模式。这些行为模式涉及到对象之间交互和通信,用于解决不同对象之间的行为问题。其中,策略模式用于封装一系列的算法,让算法可以动态切换;模板方法模式用于定义算法的骨架,具体的实现由子决定;观察者模式用于定义对象之间的一对多的依赖关系,当一个对象状态发生改变时,所有依赖该对象对象都会收到通知;迭代器模式用于遍历集合对象的元素,而不暴露集合的内部结构;任链模式用于将请求的发送者和接收者解耦,每个接收者都可以选择处理请求或者将请求传递给下一个接收者;命令模式用于将请求封装成对象,从而可以更灵活地进行参数化和传递;备忘录模式用于保存和恢复对象的状态,以便在需要时可以回滚到之前的状态;状态模式用于根据对象的内部状态改变其行为;访问者模式用于将数据结构和操作分离,从而可以在不修改数据结构的情况下定义新的操作;中介者模式用于解耦多个对象之间交互,使得各个对象可以独立地改变其行为;解释器模式用于定义一种语言的文法,并解释语言中的表达式。这些行为模式可以在不同场景下使用,根据具体的需求选择合适的模式来解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值