题解 | #观察者模式#

观察者模式

https://www.nowcoder.com/practice/557ec9ca35d542feaa06261385711323

  • constructor(name): 构造函数,接受一个 name 参数来初始化观察者的名称 this.name,并设置初始状态 this.state 为 "打游戏",同时创建一个空的 Set this.observerSet 用来存储观察者对象。
  • setObserver(observer): 方法用于向 observerSet 中添加观察者。observer 参数是一个观察者对象,通常是 Observer 类的实例。
  • setState(state): 方法用于设置被观察对象的状态,并通知所有注册的观察者。它接收一个 state 参数,将被观察对象的状态 this.state 更新为新的状态,然后遍历 observerSet 中的每一个观察者对象,并调用其 update 方法,将当前被观察对象的名称 this.name 和新的状态 state 作为参数传递给观察者。
  • update(name, state): 这是观察者类 Observer 的方法。当被观察对象的状态发生变化时,被通知的观察者会调用这个方法。在这个示例中,它简单地打印出被观察对象的名称 name 和新的状态 state
  •             class Observerd {
                    constructor(name){
                        this.name = name;
                        this.state = "打游戏";
                        this.observerSet = new Set()
                    }
    
                    setObserver(observer) {
                        this.observerSet.add(observer)
                    }
    
                    setState(state) {
                        this.state = state
                        for(let observer of this.observerSet){
                            observer.update(this.name,state)
                        }
                    }
                }
    
                class Observer{
                    update(name,state){
                        console.log(`${name}正在${state}`)
                    }
                }
    

    手撕题题库 文章被收录于专栏

    这是我开卷的第一步!!

    全部评论

    相关推荐

    点赞 评论 收藏
    分享
    评论
    点赞
    收藏
    分享
    牛客网
    牛客企业服务