题解 | #观察者模式#

观察者模式

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

class Observerd {
  constructor(name) {
	this.name = name
	this.state = '走路'
	this.observerSet = new Set()
  }

  // 用于保存观察者们
  setObserver(observer) {
  	this.observerSet.add(observer)
  }

// 用于设置该观察者"state"并通知所有观察者
  setState(state) {
	this.state = state
	for (let observer of this.observerSet) {
		observer.update(this.name, state)
	}
  }
}

class Observer {
// 用于被观察者进行消息通知,需要打印(console.log)数据,
// 数据格式为:小明正在走路。
// 其中"小明"为被观察者的"name"属性,"走路"为被观察者的"state"属性
  update(name, state) {
  	console.log(`${name}正在${state}`);
  }
}

全部评论

相关推荐

点赞 评论 收藏
分享
09-22 19:21
南京大学 Java
牛客96763241...:刚刚想说才投十几个,养生呢,结果一看是南大本硕✌️,肯定没有问题的
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
11-07 11:05
已编辑
西安电子科技大学 golang
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务