C++项目之酒店客房管理系统架构——设计模式应用场景详解(中)

3. 观察者模式(Observer Pattern):用于实现客房状态的观察和通知功能。当客房状态发生改变时,可以通知相关观察者,例如前台接待员或客房清洁人员。

我们首先定义了抽象的观察者类Observer,其中声明了一个纯虚函数update(),用于在主题状态发生改变时通知观察者。然后,定义了具体的观察者类RoomStatusObserver,实现了update()函数,输出观察者收到通知的信息。

接下来,我们定义了抽象的主题类Subject,其中声明了添加观察者、移除观察者和通知观察者的纯虚函数。然后,我们定义了具体的主题类RoomStatusSubject,实现了这些纯虚函数,以及一个额外的changeRoomStatus()函数,用于模拟房间状态发生变化时通知观察者。

在主函数中,我们创建了两个观察者对象和一个主题对象,然后注册观察者到主题中。接着,我们调用changeRoomStatus()函数模拟房间状态发生变化,并通过notifyObservers()函数通知观察者。之后,我们移除了一个观察者,再次调用changeRoomStatus()函数,观察到只有一个观察者收到了通知。

#include
#include

// 抽象观察者类
class Observer {
public:
    virtual void update() = 0;
};

你可能感兴趣的:(C++设计模式,C++项目大全,Qt编程之路,c++,设计模式,Qt设计模式,C++项目,Qt项目)