洞察如何选择适合你的企业的小程序开源框架来实现高效开发与管理
934
2022-10-31
观察者模式
一、问题描述
实验课上,老师因故暂时离开,A君与B君要游戏,但怕被抓,就委托门口的Spy同学盯梢。老师回来了,Spy分别通知A君和B君,关闭游戏,赶紧编程。
二、完成如下题目要求
(1)画出静态图
写出采用该设计模式的好处
1.观察者模式在被观察者和观察者之间建立一个抽象的耦合。被观察者角色所知道的只是一个具体观察者列表,每一个具体观察者都符合一个抽象观察者的接口。被观察者并不认识任何一个具体观察者,它只知道它们都有一个共同的接口2.观察者模式支持广播通讯。被观察者会向所有的登记过的观察者发出通知
编写代码
#include using namespace std;class Subject;//抽象观察者class Observer{ protected: string name; Subject *sub; public: Observer(string name, Subject *sub) { this->name = name; this->sub = sub; } virtual void update() = 0;};//具体的观察者,A君玩游戏 class GamePlayerA :public Observer{ public: GamePlayerA(string name, Subject *sub) :Observer(name, sub) { } void update();};//具体的观察者,B君玩游戏 class GamePlayerB :public Observer{ public: GamePlayerB(string name, Subject *sub) :Observer(name, sub) { } void update();};//抽象通知者class Subject{ protected: list
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~