[设计模式]代理模式
代理模式:
为其他对象提供一种代理以控制对这个对象的访问。 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作业。
代码如下:
#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;
}
测试结果:
[设计模式]代理模式相关推荐
- Python设计模式-代理模式
Python设计模式-代理模式 基于Python3.5.2,代码如下 #coding:utf-8info_struct = dict() info_struct["addr"] = ...
- Java设计模式(代理模式-模板方法模式-命令模式)
Java设计模式Ⅴ 1.代理模式 1.1 代理模式概述 1.2 静态代理 1.2.1 静态代理概述 1.2.2 代码理解 1.3 动态代理之JDK代理 1.3.1 动态代理之JDK代理概述 1.3.2 ...
- 设计模式——代理模式
设计模式--代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能 ...
- 23种设计模式----------代理模式(一)
代理模式也叫委托模式. 代理模式定义:对其他对象提供一种代理从而控制对这个对象的访问.就是,代理类 代理 被代理类,来执行被代理类里的方法. 一般情况下,代理模式化有三个角色. 1,抽象的主题类(或者 ...
- java设计模式代理模式_Java中的代理设计模式
java设计模式代理模式 代理对象或代理对象为另一个对象提供占位符,以控制对该对象的访问. 代理充当原始对象的轻量级版本或简化版本. 它支持与原始对象相同的操作,但可以将那些请求委托给原始对象以实现它 ...
- 第四章 Caché 设计模式 代理模式
文章目录 第四章 Caché 设计模式 代理模式 定义 类型 使用场景 优点 缺点 结构图 完整示例 抽象主题类 真实主题类 代理类 对象类 调用 思考 第四章 Caché 设计模式 代理模式 定义 ...
- Android常见设计模式——代理模式(Proxy Pattern)(二)
文章目录 1. 前言 2. 远程代理(Remote Proxy) 3. 后记 1. 前言 在上篇Android常见设计模式--代理模式(Proxy Pattern)中基本上知道了什么是代理模式,以及对 ...
- sheng的学习笔记-设计模式-代理模式
原理图: 代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问.这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介. 至少在以下集中情况下可以用 ...
- 设计模式-代理模式(Proxy Pattern)
设计模式-代理模式(Proxy Pattern) 文章目录 设计模式-代理模式(Proxy Pattern) 一.定义 二.概念解释 三.场景 四.实现 1.类图 2.代码实现 五.小结 六.动态代理 ...
- 简说设计模式——代理模式
一.什么是代理模式 关于代理模式,我们听到的见到的最多的可能就是静态代理.动态代理之类的,当然还有大家都知道的Spring Aop,这里我们先不谈这些个代理,先说个简单的例子.游戏代练应该都听说过,许 ...
最新文章
- python基础考核试题及答案
- linux教程 nfs,[原创]linux视频教程之NFS
- Java 优先级的问题
- 在移动了用户数据时Android平台的路径设置
- 加仓减仓口诀_做短线必备口诀
- ubuntu 系统下的Caffe环境搭建
- c# http请求执行超时,解决办法(给某个方法设定超时时间)
- JAVA类计算机专业毕业设计题目
- -1073740771 (0xC000041D)问题解决方案(已放弃)
- 基因重组-冲刺日志(第四天)
- 游戏开发学习路线(需要学什么)
- 对于短信验证码登录流程详细步骤
- 利用轻量级js插件Beer Slider实现新老图片的实时对比
- 基于Labview的信号和噪声频带交错情况下的滤波系统设计
- Qt 之 打开exe程序
- Linux终端和Line discipline图解
- 使用 SVG 实现圆环日期选择器
- 部署dashboard
- selenium爬取淘宝店铺数据
- C语言与JAVA内存管理_深入理解C语言内存管理
热门文章
- [转]从入门到精通,Java学习路线导航
- Android之看起来像奔溃了但是没有发现奔溃日志
- Android之解决aidl里面函数参数太大不能跨进程通信的问题
- halcon ocr 生成样本变体_Halcon简单文字识别OCR的使用
- python编程发展_编程的发展史及Python简介
- 连接数学和美学的--西奥多罗斯螺旋
- 史上最接近上帝的方程!神秘的数字4.669,目前没有人能解开这个谜语......
- 这6部超经典的物理电影,居然还有人没有看过?
- 牛顿新定律:凭本事得到的,凭什么要还?
- 快别发语音了! | 今日最佳