观察者模式(发布订阅模式)

本文深入解析了观察者模式,一种核心的行为设计模式,通过定义一对多的依赖关系,实现主题对象状态变化时自动通知所有观察者。代码示例展示了如何使用JavaScript实现观察者模式,包括创建观察者和主题对象,以及在状态变化时通知所有观察者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

观察者模式(发布订阅模式)

简介:

观察者模式(又被称为发布-订阅(public/Subscribe))模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象再状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。

在这里插入图片描述
代码块:

<button id="public">发布动态</button>
    <script>
        // 观察者  粉丝
        class Fan{
            constructor(name){
                this.name = name;
            }
            //接收动态
            update(){
                console.log(`${this.name}接收到变化`)
            }
        }    


        class Star{
            constructor(){
                this.fans = [];
            }
            //添加粉丝
            add(fan){
                this.fans.push(fan);
            }
            //通知粉丝
            public(){
                // [1,2,3].forEach(item =>{})
                this.fans.forEach(fan => {
                    fan.update();
                })
            }
        }

        let star = new Star();

        let f1 = new Fan('小红');
        let f2 = new Fan('小蓝');
        let f3 = new Fan('小绿');
        let f4 = new Fan('小灰');

        star.add(f1);
        star.add(f2);
        star.add(f3);
        star.add(f4);

        let public = document.querySelector('#public');

        public.addEventListener('click',() => {
            star.public();
        })
    </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值