📄 observer.cpp
字号:
#include <iostream>
using namespace std;
class Observer
{
public:
virtual void Update() = 0;
virtual ~Observer() {}
};
class Subject
{
public:
virtual void Notify() = 0;
virtual ~Subject() {}
};
class ConcreteSubject : public Subject
{
public:
ConcreteSubject( Observer* aObserver )
{
_observer = aObserver;
}
public:
void Notify()
{
_observer->Update();
}
private:
Observer* _observer;
};
class ConsoleObserver : public Observer
{
public:
~ConsoleObserver()
{
delete _subject;
}
public:
void Start()
{
_subject = new ConcreteSubject( this );
_subject->Notify();
}
public:
void Update()
{
cout<<"the observer is called!"<<endl;
}
private:
Subject* _subject;
};
int main()
{
ConsoleObserver* pObserver = new ConsoleObserver;
pObserver->Start();
delete pObserver;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -