proxy模式

 

 1 #include <iostream>
 2 #include <string>
 3 #include <vector>
 4 #include <queue>
 5 #include <set>
 6 #include <algorithm>
 7 #include <map>
 8 #include <stack>
 9 using namespace std;
10 
11 // 女学生类
12 // 相当于client类
13 class cSchoolGirl {
14 private:
15     string m_name; // 姓名
16 
17 public:
18     string GetName() const {
19         return m_name;
20     }
21     void SetName(string name) {
22         m_name = name;
23     }
24 };
25 
26 // 送礼物接口
27 // 相当于Subject类,定义了实体和代理的公共接口
28 class IGiveGift {
29 public:
30     virtual string GiveFlowers() = 0;
31 };
32 
33 // 追求者
34 // 相当于RealSubject类,实际工作的类
35 class cPursuit: public IGiveGift {
36 private:
37     cSchoolGirl* m_mm;
38 
39 public:
40     cPursuit(cSchoolGirl* mm) :
41             m_mm(mm) {
42     }
43 
44     string GiveFlowers() {
45         return m_mm->GetName() + string(" 送你鲜花");
46     }
47 };
48 
49 // 代理类
50 // 即Proxy类,主要的功能是代理RealSubject接受外界的调用
51 // 使得减少了RealSubject与外界的耦合
52 class cProxy: public IGiveGift {
53 private:
54     cPursuit* m_gg;
55 
56 public:
57     cProxy(cSchoolGirl* mm) {
58         m_gg = new cPursuit(mm);
59     }
60     // 代理的时候可以添加一点额外的功能,例如多加一句“你好”
61     string GiveFlowers() {
62         return string("你好,") + m_gg->GiveFlowers();
63     }
64 };
65 
66 int main() {
67     cSchoolGirl jiaojiao;
68     jiaojiao.SetName("caroline");
69     cProxy daili(&jiaojiao);
70     cout << daili.GiveFlowers() << endl;
71     return 0;
72 }

 

转载于:https://www.cnblogs.com/kakamilan/archive/2012/07/24/2607054.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Proxy模式是一种常用的设计模式,也称为代理模式。它的作用是在某个对象外部提供一个代理,用来控制对原始对象的访问。 Proxy模式通常用于以下场景: 1. 远程访问:当客户端需要访问远程对象时,我们可以通过代理实现远程访问。代理接收客户端的请求,并负责将请求传递给远程对象。远程对象将处理请求并将结果返回给代理,代理再将结果返回给客户端。 2. 安全控制:代理可以用来限制对原始对象的访问。代理可以检查客户端是否有足够的权限来访问原始对象,并在必要时拒绝访问。 3. 记录日志:代理可以用来记录对原始对象的访问。代理可以记录每个访问的时间、客户端的IP地址、请求的参数和结果等信息,从而方便后续的跟踪和分析。 4. 延迟加载:代理可以用来实现延迟加载。当客户端请求访问原始对象时,代理可以先返回一个占位符,并在必要时再加载原始对象。这样可以节省系统资源,提高系统的响应速度。 5. 缓存数据:代理可以用来实现数据缓存。当客户端请求访问某个数据时,代理先检查缓存中是否存在该数据,如果存在则直接返回缓存数据,否则才访问原始对象并将结果放入缓存中。 总之,Proxy模式是一种非常有用的设计模式,它可以在许多场合下起到很好的作用。如果您想要提高系统的性能、安全性或可维护性,那么Proxy模式是一种不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值