Proxy模式

所谓Proxy模式就是某行为应该是由某特定的类对象来执行,但是因为某种原因,交给另一个实体类来执行,该实体类则为类对象的代理,Proxy模式实现了逻辑和实现的彻底解

耦,其实想想,这和Bridge模式,应该是类似但不相同的,Bridge模式实现了功能和实现的解耦,Bridge模式是在函数功能的粒子度上进行解耦的,但是Proxy则是在对象的粒度上

进行解耦的,但是仔细想想,好像这俩是完全一样的,因为Proxy记录了特定类对象的指针,在Proxy的Request函数体重使用的是特定类对象的方法,只是在Proxy中进行了一次绕

过,而Bridge模式则不一样了,他真正的函数执行体是在传入的类对象中的:


#include
  
  
   
   
using namespace std;
class Subject
{
  public:
   Subject();
  protected:
  ~Subject()
   {;}
  public:
  virtual void Request()=0;  
};
class ConcreteSubject
{
   public:
   ConcreteSubject()
   {;}
    ~ConcreteSubject()
    {;}
   void Request()
    {
      cout<<"ConcreteSubject::Request\n";
    }
};
class Proxy:public Subject
{
   private:
    Subject* m_sub;
   public:
    Proxy(Subject* sub)
   { 
       m_sub=sub;
   }
  ~Proxy()
    {
        delete m_sub; 
    }
    void Request()
   {
      m_sub->Request();
   }
};
int main()
{
    Subject* he=new ConcreteSubject();
    Subject *tmp=new Proxy(he);
    tmp->Request();
    delete tmp;
}
	

  
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

世纪殇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值