设计模式理解-代理模式

定义:为其他对象提供一种代理以控制对这个对象的访问。有四种常用的情况:(1)远程代理,(2)虚代理,(3)保护代理,(4)智能引用。


其实C++里面的智能指针也是代理模式...........我们操作的智能指针.其实执行的是智能指针里面包着的实质对象....


代理模式就是找个中间对象去处理不同的事情......听起来和策略模式差不多呢..........但有些不同...

策略模式是封装不同的算法....秘书和制作报告的方法不是同类.................秘书去选择并调用.

而代理模式中...........助理和执行者有相同的接口.......助理和执行者具有相同接口....


我们想想老板分配工作..

1)某天老板和助理说要完成A事情...

2)第二天老板和助理说要完成B事情..

class yuangong{

public: 

virtual void kaihui()=0;

virtual void jiaban()=0;

};

class zhuli:public yuangong {     //这里不继承也没关系.

public :

zhuli( yuangong *yg);

~zhuli(){delete m_pYuangong;}

void kaihui() { m_pYuangong->kaihui();}

void jiaban() { m_pYuangong->jiaban();}

private:

yuangong *m_pYuangng;

};

class A :public yuangong {

public:

void kaihui(){ cout<<"开会咯":}

void jiaban(){ cout<<"加班咯";}

};

class B :public yuangong {

public:

void kaihui(){cout <<"又要开会T_T";}

void jiaban(){cout<<"终于加班咯";}

};


class Boss

{

public:

void dokaihui() {  yuangong *p = new zhuli( new A);    p->kaihui(); delete p;}

void dojiaban() { yuangong *p = new zhuli(new B); p->jiaban(); delete p;}

}

要想成为助理,必须要清楚知道A和B可以干什么,秘书不一定继承于A,B的父类..............使用秘书就像在使用里面的执行者一样..秘书就可以成为代理,中介者.

其实这样有什么好处呢?为什么Boss不直接喊哪个部门做事

因为秘书可以在里面做一些统计和判断,,或者其他处理..     把客户区和服务区分开来了......


引用一下: 代理模式可以很好的将前后端分开,实现了松散耦合。代理模式属于结构型模式。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值