zoukankan      html  css  js  c++  java
  • 前端设计模式 中介者模式

    中介者模式

    如图,左边的这种相互的沟通会非常出杂乱,复杂。严重不符合开放封闭原则,其中一个对象改了,就牵扯到很多的对象。右边的,如果一个对象改了,只要改中介者就行

    举个例子:比如买房子,a,b分别是买房子和卖房子的两个人
    // 中介者
    class Mediator {
        constructor(a, b) {
            this.a = a; 
            this.b = b;
        }
        setA() {
            let number = this.b.number;
            this.a.setNumber(number * 100);
        }
        setB() {
            let number =  this.a.number;
            this.b.setNumber(number / 100);
        }
    }
    
    class A {
        constructor() {
            this.number = 0;
        }
        setNumber(num, m) {
            this.number = num;
            if (m) {
                m.setB();
            }
        }
    }
    
    class B {
        constructor() {
            this.number = 0;
        }
        setNumber(num, m) {
            this.number = num;
            if (m) {
                m.setA();
            }
        } 
    }
    
    // 测试
    let a = new A(); 
    let b = new B();
    let m = new Mediator(a, b);
    a.setNumber(100, m);
    console.log(a.number, b.number);
    b.setNumber(100, m);
    console.log(a.number, b.number);
    设计原则验证
    讲各关联对象通过中介者隔离
    符合开放封闭原则
  • 相关阅读:
    工坊第五天
    工坊第四天
    工坊第三天
    工坊第二天
    工坊第一天
    莫队 优雅暴力出奇迹
    状压 DP 总结
    关于MatlabGUI清除WorkSpace的用法
    ArduinoNano卡在上传,无法烧录
    两轮差速驱动机器人的坐标轨迹计算
  • 原文地址:https://www.cnblogs.com/wzndkj/p/11873932.html
Copyright © 2011-2022 走看看