代理模式:

为其他对象提供一种代理以控制对这个对象的访问。 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作业。

代码如下:

#include <iostream>
using namespace std;//共有接口  代理和真正的类都继承它
class AbstractCommonInterface
{public:virtual void run() = 0;
};class MySystem :public AbstractCommonInterface{public:virtual void run(){cout << "系统启动" << endl;}
};//提供一种代理来控制对其他对象的访问
//必须要权限验证,不是所有人都能启动,要提供用户名和密码
class MySystemProxy :public AbstractCommonInterface
{public:MySystemProxy(string a,string b):username(a),password(b){pSystem = new MySystem;}bool checkUsernameAndPassword(){if (username == "admin" && password == "admin"){return true;}return false;}virtual void run(){if (checkUsernameAndPassword()){cout << "用户名和密码正确" << endl;this->pSystem->run();}else{cout << "用户名或者密码错误" << endl;}}~MySystemProxy(){if (pSystem != nullptr){delete pSystem;}}MySystem *pSystem;string username;string password;
};void test01()
{//把代理当作真正的服务器来用了MySystemProxy *proxy = new MySystemProxy("root", "admin");proxy->run();
}void test02()
{MySystemProxy *proxy = new MySystemProxy("admin", "admin");proxy->run();
}int main()
{test01();cout << "---------------------" << endl;test02();return 0;
}

测试结果:

[设计模式]代理模式相关推荐

  1. Python设计模式-代理模式

    Python设计模式-代理模式 基于Python3.5.2,代码如下 #coding:utf-8info_struct = dict() info_struct["addr"] = ...

  2. Java设计模式(代理模式-模板方法模式-命令模式)

    Java设计模式Ⅴ 1.代理模式 1.1 代理模式概述 1.2 静态代理 1.2.1 静态代理概述 1.2.2 代码理解 1.3 动态代理之JDK代理 1.3.1 动态代理之JDK代理概述 1.3.2 ...

  3. 设计模式——代理模式

    设计模式--代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能 ...

  4. 23种设计模式----------代理模式(一)

    代理模式也叫委托模式. 代理模式定义:对其他对象提供一种代理从而控制对这个对象的访问.就是,代理类 代理 被代理类,来执行被代理类里的方法. 一般情况下,代理模式化有三个角色. 1,抽象的主题类(或者 ...

  5. java设计模式代理模式_Java中的代理设计模式

    java设计模式代理模式 代理对象或代理对象为另一个对象提供占位符,以控制对该对象的访问. 代理充当原始对象的轻量级版本或简化版本. 它支持与原始对象相同的操作,但可以将那些请求委托给原始对象以实现它 ...

  6. 第四章 Caché 设计模式 代理模式

    文章目录 第四章 Caché 设计模式 代理模式 定义 类型 使用场景 优点 缺点 结构图 完整示例 抽象主题类 真实主题类 代理类 对象类 调用 思考 第四章 Caché 设计模式 代理模式 定义 ...

  7. Android常见设计模式——代理模式(Proxy Pattern)(二)

    文章目录 1. 前言 2. 远程代理(Remote Proxy) 3. 后记 1. 前言 在上篇Android常见设计模式--代理模式(Proxy Pattern)中基本上知道了什么是代理模式,以及对 ...

  8. sheng的学习笔记-设计模式-代理模式

    原理图: 代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问.这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介. 至少在以下集中情况下可以用 ...

  9. 设计模式-代理模式(Proxy Pattern)

    设计模式-代理模式(Proxy Pattern) 文章目录 设计模式-代理模式(Proxy Pattern) 一.定义 二.概念解释 三.场景 四.实现 1.类图 2.代码实现 五.小结 六.动态代理 ...

  10. 简说设计模式——代理模式

    一.什么是代理模式 关于代理模式,我们听到的见到的最多的可能就是静态代理.动态代理之类的,当然还有大家都知道的Spring Aop,这里我们先不谈这些个代理,先说个简单的例子.游戏代练应该都听说过,许 ...

最新文章

  1. python基础考核试题及答案
  2. linux教程 nfs,[原创]linux视频教程之NFS
  3. Java 优先级的问题
  4. 在移动了用户数据时Android平台的路径设置
  5. 加仓减仓口诀_做短线必备口诀
  6. ubuntu 系统下的Caffe环境搭建
  7. c# http请求执行超时,解决办法(给某个方法设定超时时间)
  8. JAVA类计算机专业毕业设计题目
  9. -1073740771 (0xC000041D)问题解决方案(已放弃)
  10. 基因重组-冲刺日志(第四天)
  11. 游戏开发学习路线(需要学什么)
  12. 对于短信验证码登录流程详细步骤
  13. 利用轻量级js插件Beer Slider实现新老图片的实时对比
  14. 基于Labview的信号和噪声频带交错情况下的滤波系统设计
  15. Qt 之 打开exe程序
  16. Linux终端和Line discipline图解
  17. 使用 SVG 实现圆环日期选择器
  18. 部署dashboard
  19. selenium爬取淘宝店铺数据
  20. C语言与JAVA内存管理_深入理解C语言内存管理

热门文章

  1. [转]从入门到精通,Java学习路线导航
  2. Android之看起来像奔溃了但是没有发现奔溃日志
  3. Android之解决aidl里面函数参数太大不能跨进程通信的问题
  4. halcon ocr 生成样本变体_Halcon简单文字识别OCR的使用
  5. python编程发展_编程的发展史及Python简介
  6. 连接数学和美学的--西奥多罗斯螺旋
  7. 史上最接近上帝的方程!神秘的数字4.669,目前没有人能解开这个谜语......
  8. 这6部超经典的物理电影,居然还有人没有看过?
  9. 牛顿新定律:凭本事得到的,凭什么要还?
  10. 快别发语音了! | 今日最佳