被观察者接口说明: 1.订阅对象、解除订阅、通知更新的函数,是所有被观察者共有行为,所以将其抽象出来作为被观察者的接口。 2.发行函数模拟改变状态函数,因为不同的被观察者有不同的方式,所以将其声明为纯虚函数,在派生类中实现。 3.观察者用STD中的List模板来实现,所以需要析构函数来释放。 观察者接口说明: 1.由于所有观察者都有更新状态这一操作,所以将其声明为接口。 2.Update()函数对于不同的具体对象,有不同的行为,所以在派生类中实现,声明为纯虚函数。 3.ShowMessage()函数用来模拟与被观察者相关的操作,如果被观察者状态改变,观察者需要执行某种操作,则在这里实现。本例中用来显示收到报纸这一信息。
下面是类的实现部分:Observer.cpp
下面是主程序部分:
由于是开始学习,肯定有很多因素考虑不到,欢迎大家批评指正,共同进步!