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);
    设计原则验证
    讲各关联对象通过中介者隔离
    符合开放封闭原则
  • 相关阅读:
    css引入方式
    HTML标签
    动态导入模块impoerlib
    pymysql连接数据库
    创建数据库表之引擎
    IO多路复用互动聊天,select函数监听
    欧拉筛法求素数个数
    与三角形相关的问题 WITH 有向面积
    时间复杂度的计算
    折半查找
  • 原文地址:https://www.cnblogs.com/wzndkj/p/11873932.html
Copyright © 2011-2022 走看看