zoukankan      html  css  js  c++  java
  • 观察者模式

    // 被观察者
    class Subject{   // 定义一个对象
        constructor(){  // 构造器---可以实例一个对象
            this.subs = []  // 存储观察者
        }
        addsub(sub){  // 添加观察者
            this.subs.push(sub)
        }
        notify(food){   // 通知观察者
            this.subs.forEach(sub=>{ /// 遍历所有的观察者并且调用update
               sub.update(food)  // 通知观察者来取餐
            })
        }
    }
    
    // 观察者---订餐的人
    class Observer{
        constructor(name,food){
          this.name = name;
          this.food = food;
        }
        update(food){
          if(food === this.food){
              console.log(this.name + "点的餐:"+food)
          }
        }
    }
    
    var sub = new Subject()  // new一个对象会自动调用构造器
    var tom = new Observer('张三','鱼香肉丝')
    var jack = new Observer('李四','燕窝细粉')
    // 将观察者添加到观察列表
    sub.addsub(tom)
    sub.addsub(jack)
    // 通知观察者来取餐
    sub.notify("鱼香肉丝")
    sub.notify("燕窝细粉")
    // 被观察者
    class Subject{   // 定义一个对象
        constructor(){  // 构造器---可以实例一个对象
            this.subs = []  // 存储观察者
        }
        addsub(sub){  // 添加观察者
            this.subs.push(sub)
        }
        notify(food){   // 通知观察者
            this.subs.forEach(sub=>/// 遍历所有的观察者并且调用update
               sub.update(food)  // 通知观察者来取餐
            })
        }
    }

    // 观察者---订餐的人
    class Observer{
        constructor(name,food){
          this.name = name;
          this.food = food;
        }
        update(food){
          if(food === this.food){
              console.log(this.name + "点的餐:"+food)
          }
        }
    }

    var sub = new Subject()  // new一个对象会自动调用构造器
    var tom = new Observer('张三','鱼香肉丝')
    var jack = new Observer('李四','燕窝细粉')
    // 将观察者添加到观察列表
    sub.addsub(tom)
    sub.addsub(jack)
    // 通知观察者来取餐
    sub.notify("鱼香肉丝")
    sub.notify("燕窝细粉")
  • 相关阅读:
    js 获取asp.net TextBox值
    项目笔记一
    如何取GridView中隐藏列的值
    使用bablepolyfill
    border: 0.5px
    选择查询固定位置的数据
    SQL用户数据库权限设置
    Java.1 HelloWorld的分析
    Java.2 面向对象
    【drupal实践】windows下drupal7.22develop版本安装
  • 原文地址:https://www.cnblogs.com/carry-carry/p/12925759.html
Copyright © 2011-2022 走看看