observer.cpp
来自「设计模式 几个常见的设计模式源代码 Delegation Factory等」· C++ 代码 · 共 69 行
CPP
69 行
#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 + =
减小字号Ctrl + -
显示快捷键?