-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproxy.cpp
More file actions
42 lines (39 loc) · 742 Bytes
/
proxy.cpp
File metadata and controls
42 lines (39 loc) · 742 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//为其他对象提供一种代理以控制对这个对象的访问
#include <iostream>
class ISubject
{
public:
virtual void process()
{
std::cout << "This is ISubject" << std::endl;
}
};
class RealSubject : public ISubject
{
public:
void process() override
{
std::cout << "This is RealSubject" << std::endl;
}
};
class SubjectProxy : public ISubject
{
public:
SubjectProxy(ISubject* subject):_subject(subject){}
virtual void process()
{
_subject->process();
std::cout << "This is SubjectProxy" << std::endl;
}
private:
ISubject* _subject;
};
//int main()
//{
// ISubject* sub = new RealSubject();
//
// ISubject* intermediary = new SubjectProxy(sub);
//
// intermediary->process();
// return 0;
//}