设计模式之代理模式(Proxy Pattern)
定义:为其他对象提供一种代理以控制这个对象的访问,也叫做委托模式。
咱们比作游戏,通俗讲代理模式就是,一个主题虚基类派生出两个子类,一个玩家类,实现相关操作,一个是代练类,代替执行玩家相关操作,代练类对象有个指向玩家类对象的指针,可以通过调用代练类对象,实现玩家不登录,游戏照样打怪升级。。。。
using namespace std; //游戏主题类 class Game { public:Game() {}virtual ~Game() {}virtual void begin_time() = 0;virtual void login() = 0;virtual void killBoss() = 0;virtual void upGrade() = 0;virtual void end_time() = 0; };//游戏实例 class RealGame : public Game { public:RealGame(string username, string password) {this->userName = username;this->password = password;}~RealGame() {}//上线virtual void begin_time() { printf("开始时间: 2017/3/20 19:34\n"); }//登录virtual void login() { cout <<"用户: " <<userName<<"登录游戏"<< endl;}//打怪virtual void killBoss() { cout << userName << "打死领主\"锤王菠萝丁!\"" << endl;}//升级virtual void upGrade() { cout << userName << "升级到89级!" << endl;}//下线virtual void end_time() {cout <<"2017/3/20 21:12 玩家"<< userName << "退出游戏" << endl;}private:string userName;string password; };//游戏代练者 class Proxy : public Game { public:Proxy(string userName, string password){pRealGame = new RealGame(userName, password);}~Proxy() {delete pRealGame;pRealGame = nullptr;}virtual void begin_time() {pRealGame->begin_time();}virtual void login(){pRealGame->login();}virtual void killBoss(){pRealGame->killBoss();}virtual void upGrade(){pRealGame->upGrade();}virtual void end_time(){pRealGame->end_time();}private:RealGame *pRealGame; };int main() {Game *m_game = new Proxy("张三","******");m_game->begin_time();m_game->login();m_game->killBoss();m_game->upGrade();m_game->end_time();delete m_game;m_game = nullptr; }
转载于:https://www.cnblogs.com/Forever-Road/p/6591287.html
设计模式之代理模式(Proxy Pattern)相关推荐
- 二十四种设计模式:代理模式(Proxy Pattern)
代理模式(Proxy Pattern) 介绍 为其他对象提供一个代理以控制对这个对象的访问. 示例 有一个Message实体类,某对象对它的操作有Insert()和Get()方法,用一个代理来控制对这 ...
- Java24种设计模式(第二种)--代理模式(Proxy Pattern)
Java24种设计模式 (第二种) 一.代理模式(Proxy Pattern) 模式逻辑: 什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道 被代理人能做哪些事 ...
- 设计模式——代理模式(Proxy Pattern)之为别人做嫁衣
代理模式Proxy Pattern 代理模式 1.背景 2.定义 3.特征 4.应用场景 5.实验案例 参考 代理模式 1.背景 假如说我现在想租一间房子,虽然我可以自己去找房源,做卫生检测等一系列的 ...
- 设计模式-代理模式(Proxy Pattern)
设计模式-代理模式(Proxy Pattern) 文章目录 设计模式-代理模式(Proxy Pattern) 一.定义 二.概念解释 三.场景 四.实现 1.类图 2.代码实现 五.小结 六.动态代理 ...
- 三国杀与设计模式之代理模式(Proxy)
本人原博地址:http://blog.saymagic.cn/blog.php?id=17 三国杀案例:在五人局中,作为反贼的黄月英借黄忠的刀杀作为忠臣的夏侯惇,从这句话中我们可以总结出一个成语对不对 ...
- 设计模式(结构型)之代理模式(Proxy Pattern)
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbob ...
- JAVA设计模式Design Pattern→单例模式Singleton Pattern、工厂模式Factory Pattern、代理模式Proxy Pattern
私有化构造函数的类可以提供相应的 "接口"(一般就是静态方法)来返回自己的唯一实例供外部调用,像这样的确保只生成一个实例的模式被称作单例模式. 工厂模式,一个模型,用来大规模的生产 ...
- 代理模式(Proxy Pattern)
设计模式 - 吕震宇 .NET设计模式系列文章 薛敬明的专栏 乐在其中设计模式(C#) C#设计模式(13)-Proxy Pattern 一. 代理(Proxy)模式 代理(Proxy)模式给某一个对 ...
- 设计模式之代理模式(Proxy)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...
- 27代理模式(Proxy Pattern)
直接与间接: 人们对复杂的软件系统常有一种处理手法,即增加一层间接层,从而对系统获得一种更为灵活. 满足特定需求的解决方案. ...
最新文章
- Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
- chmod 4755和chmod 755的区别
- java 文件引用路径_JAVA项目引用文件路径问题
- 左手笛卡尔坐标系与左手笛卡尔坐标系区分
- mysql 二次 聚合,MySql-聚合查询
- P4288 [SHOI2014]信号增幅仪 最小圆覆盖
- argb可以和rgb同步吗_神光同步酷炫幻彩,安钛克光棱120 RGB风扇套装
- 开上帝视角,其实你也能
- 计算机网路vlan划分练习
- c语言判断闰年并输出该月天数,C语言宏定义实现闰年判断并输出指定月的天数...
- 玩转SpringCloud(F版本) 四.路由网关(zuul)
- linux双机热备软件 mysql,Linux Mysql 双机热备安装详解
- selenium基础自学七(获取超链接)
- 网络数据采集分析工具tcpdump定义抓包过滤器
- 问题 D: 分解质因数
- Location is not available,the folder or directory is corrupted and unreadable
- 这341句话,这么美,那么伤。
- 怎样让计算机背景图片变大,电脑上如何使照片调成1寸??excel调整背景图片大小...
- 第一周作业(零基础)
- Linux基础学习Day2之基本概念及操作
热门文章
- usaco letter game
- 简书php硬件交互,php设计模式——适配器模式
- 计算机科学NIP,NIP自然语言处理主要应用在哪些领域呢?
- 计算机网络实验可变长子网掩码,计算机网络实验3-子网掩码与划分子网实验报告.docx...
- mysql plsql 循环_PL/SQL for...loop循环语句
- tableau两个不同的图合并_Tableau可视化分析-业务常用图形绘制1
- Linux网络编程--TCP中的三次握手和四次挥手
- Linux软件包增量升级,Linux增量更新jar包内容
- c 远程编辑linux文件,makefile - 在远程Linux机器上编译C ++ - “检测到时钟偏差”警告...
- PCL基础4:PCLVisualizer可视化窗口显示