C++项目之酒店客房管理系统架构——设计模式应用场景详解(中)
2023-12-31 05:06:02
3. 观察者模式(Observer Pattern):用于实现客房状态的观察和通知功能。当客房状态发生改变时,可以通知相关观察者,例如前台接待员或客房清洁人员。
我们首先定义了抽象的观察者类Observer
,其中声明了一个纯虚函数update()
,用于在主题状态发生改变时通知观察者。然后,定义了具体的观察者类RoomStatusObserver
,实现了update()
函数,输出观察者收到通知的信息。
接下来,我们定义了抽象的主题类Subject
,其中声明了添加观察者、移除观察者和通知观察者的纯虚函数。然后,我们定义了具体的主题类RoomStatusSubject
,实现了这些纯虚函数,以及一个额外的changeRoomStatus()
函数,用于模拟房间状态发生变化时通知观察者。
在主函数中,我们创建了两个观察者对象和一个主题对象,然后注册观察者到主题中。接着,我们调用changeRoomStatus()
函数模拟房间状态发生变化,并通过notifyObservers()
函数通知观察者。之后,我们移除了一个观察者,再次调用changeRoomStatus()
函数,观察到只有一个观察者收到了通知。
#include <iostream>
#include <vector>
// 抽象观察者类
class Observer {
public:
virtual void update() = 0;
};
文章来源:https://blog.csdn.net/xcksj888/article/details/135300826
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!