设计模式之观察者模式(前端)

观察者模式的定义:

让多个观察者对象同时监听某一个主体对象,这个主体对象发生变化时就会通知所有的观察者对象,使得观察者对象能够自己去更新自己

例如:你是一个员工,老板发通知说明天下午团建,你就要计划明天的安排

主要结构:

一个被观察者,内部需要维护一个与所有观察它的对象数组;

多个观察者,内部必须的一个 update 函数,需要在被观察者状态更新后,作出响应。

代码实现:

  <script>
        // 观察者
        class staff {
            constructor(name, code) {
                this.name = name
                this.code = code
            }
            updated(object, evert) {
                console.log(`${object.name}进行了${evert},${this.name}收到`);
            }

        }


        // 被观察者
        class boss {
            // 设置观察者集合
            observeList = []
            constructor(name) {
                this.name = name
            }

            // 将观察者添加到被观察者对象

            add(staff) {

                let flag=this.observeList.some(item => item.code == staff.code)
                if(!flag) this.observeList.push(staff)
            }

            behavior(event) {

                this.observeList.forEach(item=>{
                    if(item.updated) item.updated(this,event)
                })

            }


        }

        let li =new staff('李四',1)  //创建观察者1
        let zhang =new staff('张三',2)//创建观察者2
        let wang =new staff('王二',3)//创建观察者2


        let Boss=new boss('刘老板') //创建被观察者


        Boss.add(li)
        Boss.add(zhang)
        Boss.add(wang)

        Boss.behavior('通知团建')


    </script>

本文就到此结束 但是为了水文章 我就给年轻人几句话

对理想主义者的几句话  说的不好勿喷

理想主义者有时候是很孤独的

马尔克斯有句话,孤独前可能是迷茫;孤独后,便是成长。我们一起成长吧。

这段文字来源于某个电视剧

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值