首页 > 编程语言 > 详细

c++ 结构型模式-代理(Proxy)

时间:2020-01-24 15:11:49      阅读:76      评论:0      收藏:0      [点我收藏+]

1) 意图:

为其他对象提供一种代理以控制对这个对象的访问

2) 结构:

 技术分享图片

 

 其中:

  1. Subject定义了 Proxy RealSubject 的公有接口
  2. Proxy 保存一个引用,实现代理访问实体
  3. RealSubject定义了实体

3) 适用性:

  1. 复杂的指针代替简单的指针的时候,例如:远程代理、虚代理、保护代理...

4) 举例:

 1 #include <iostream>
 2 #include <list>
 3 class  Subject
 4 {
 5 public:
 6     Subject() {}
 7     virtual ~Subject() {}
 8     virtual void  Request() = 0;
 9 };
10 class  RealSubject : public Subject
11 {
12 public:
13     RealSubject() {}
14     virtual ~RealSubject() {}
15     virtual void  Request()
16     {
17         std::cout << "RealSubject request" << std::endl;
18     }
19 };
20 class Proxy : public Subject
21 {
22 public:
23     Proxy():m_object(NULL) {}
24     virtual ~Proxy() 
25     {
26         if (m_object)
27         {
28             delete m_object;
29         }
30     }
31     virtual void  Request()
32     {
33         if (m_object == NULL)
34         {
35             m_object = new RealSubject();
36         }
37         m_object->Request();
38     }
39 private:
40     RealSubject* m_object;
41 };
42 
43  int main()
44  {
45      Subject* subject = new Proxy();
46      subject->Request();
47      system("pause");
48  }

 

c++ 结构型模式-代理(Proxy)

原文:https://www.cnblogs.com/ho966/p/12232195.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!