6.代理模式

简介: 1代理模式的核心内容是: A:最终追求的对象:SchoolGirl B:实际送礼物的类:Pursuit C:代理中含有一个Pursuit对象,实际通过调用它来送礼物。 2代理模式的作用:通过代理实现本应该自己做的事儿。 3代理模式具体描述 代理模式:代理模式给某一个对象提供一个代理对象, 并由代理对象控制对源对象的引用。 代理就是一个

1代理模式的核心内容是:

A:最终追求的对象:SchoolGirl

B:实际送礼物的类:Pursuit

C:代理中含有一个Pursuit对象,实际通过调用它来送礼物。

2代理模式的作用:通过代理实现本应该自己做的事儿。

3代理模式具体描述

代理模式:代理模式给某一个对象提供一个代理对象,

并由代理对象控制对源对象的引用。

代理就是一个人或一个机构代表另一个人或者一个机构采取行动。

某些情况下,客户不想或者不能够直接引用一个对象,

代理对象可以在客户和目标对象直接起到中介的作用。

客户端分辨不出代理主题对象与真实主题对象。

代理模式可以并不知道真正的被代理对象,

而仅仅持有一个被代理对象的接口,这时候代理对象不能够创建被代理对象,

被代理对象必须有系统的其他角色代为创建并传入。

 

MM在网上聊天,一开头总是“hi, 你好”,

“你从哪儿来呀?”“你多大了?”“身高多少呀?”

这些话,真烦人,写个程序做为我的Proxy吧,

凡是接收到这些话都设置好了自己的回答,

接收到其他的话时再通知我回答,怎么样,酷吧。

4.代理模式类图

5.代码:

#include <iostream>

#include <string>

using namespace std;

//代理模式:代理模式给某一个对象提供一个代理对象,

//并由代理对象控制对源对象的引用。

//代理就是一个人或一个机构代表另一个人或者一个机构采取行动。

//某些情况下,客户不想或者不能够直接引用一个对象,

//代理对象可以在客户和目标对象直接起到中介的作用。

//客户端分辨不出代理主题对象与真实主题对象。

//代理模式可以并不知道真正的被代理对象,

//而仅仅持有一个被代理对象的接口,这时候代理对象不能够创建被代理对象,

//被代理对象必须有系统的其他角色代为创建并传入。

//

//MM在网上聊天,一开头总是“hi, 你好”,

//“你从哪儿来呀?”“你多大了?”“身高多少呀?”

//这些话,真烦人,写个程序做为我的Proxy吧,

//凡是接收到这些话都设置好了自己的回答,

//接收到其他的话时再通知我回答,怎么样,酷吧。

 

class SchoolGirl

{

public:

    string name;

};

 

class IGiveGift

{

public:

    virtual void giveDolls() = 0;

    virtual void giveFlowers() = 0;

};

 

//追求妹子的类

class Pursuit :public IGiveGift

{

private:

    SchoolGirl mm;

public:

    Pursuit(SchoolGirl m)

    {

        mm = m;

    }

    void giveDolls()

    {

        cout << mm.name << " 送你娃娃" << endl;

    }

    void giveFlowers()

    {

        cout << mm.name << " 送你鲜花" << endl;

    }

};

 

class Proxy :public IGiveGift

{

private:

    //隐藏了追求着,目标是代表追求着追妹子

    Pursuit gg;

public:

    Proxy(SchoolGirl mm) :gg(mm)

    {

        //gg=g;

    }

    void giveDolls()

    {

        gg.giveDolls();

    }

    void giveFlowers()

    {

        gg.giveFlowers();

    }

};

 

int main()

{

    SchoolGirl lijiaojiao;

    lijiaojiao.name = "李娇娇";

    //Pursuit zhuojiayi(lijiaojiao);

    Proxy daili(lijiaojiao);

 

    daili.giveDolls();

    cin.get();

    return 0;

}

运行结果如下:

李娇娇送你娃娃


目录
相关文章
|
11月前
|
人工智能 算法 安全
详解贪心算法
详解贪心算法
|
9月前
|
弹性计算 运维 安全
安全无处不在-aliyun云服务诊断评测
我是一位个人开发者,热爱编写博客分享技术知识,对阿里云ECS十分感兴趣,将博客部署在其上,欢迎访问[乙太的小屋](https://www.oisec.cn/)。为了提升网站安全性,我启用了阿里云的“云资源健康状态及诊断”功能,能实时排查并解决如网站无法访问、错误配置、安全风险等问题,极大提升了运维效率和安全性。建议增加按流量计费的实时预估和阈值设置,防止CC攻击和DDoS带来的高额费用。推荐更多人使用此工具,链接:[阿里云诊断工具](https://help.aliyun.com/zh/management-console/what-is-cloud-service-diagnostics)。
132 10
|
10月前
|
数据可视化 开发工具 git
如何解决 Git 版本控制系统中冲突的问题?
在Git版本控制系统中,冲突是指在合并或拉取操作时,两个或多个开发者对同一文件的同一部分进行了不同的修改,导致Git无法自动确定应该采用哪种修改。
273 1
|
10月前
|
存储 监控 安全
网络钓鱼:识别与防范技巧
网络钓鱼:识别与防范技巧
442 1
|
10月前
|
Go vr&ar 图形学
重塑体验:AR/VR技术在游戏与娱乐行业的创新应用
【10月更文挑战第29天】本文探讨了AR/VR技术如何改变游戏与娱乐行业,介绍了AR和VR的基本概念及其在游戏和娱乐中的应用实例,包括《精灵宝可梦GO》的AR开发和VR视频播放器的实现代码,并展望了未来的发展趋势。
709 2
|
缓存 安全 生物认证
什么是代理ip?代理ip的工作原理?代理ip有哪些类型?
当您在互联网上浏览或访问网站时,您的IP地址是您的设备在网络上的唯一标识。通过IP地址,网站和其他在线服务可以追踪您的位置、活动和访问历史。但是,使用IP代理可以帮助您代理本地IP地址,从而增加您的在线隐私和安全。
什么是代理ip?代理ip的工作原理?代理ip有哪些类型?
|
负载均衡 安全 Cloud Native
云上负载均衡:构建高可用、高性能的网络应用架构
与云原生技术深度融合:随着云原生技术的普及和发展未来的云上负载均衡将更加紧密地与云原生技术相结合。例如与Kubernetes等容器编排平台集成实现自动化的服务发现和路由管理;与Serverless架构结合提供无缝的流量接入和请求处理能力。 安全性能提升:面对日益严峻的网络安全威胁云上负载均衡将更加注重安全性能的提升。通过引入加密传输、访问控制、DDoS防护等安全措施确保网络流量的安全性和隐私性;同时还将建立完善的安全监控和应急响应机制以应对各种安全事件和突发事件。 支持多协议和多场景:未来的云上负载均衡将支持更多种类的网络协议和应用场景以满足不同用户和业务的需求。例如支持HTTP/2、
448 0
|
JavaScript 区块链
从零开始:如何用Electron将chatgpt-plus.top 打包成EXE文件
从零开始:如何用Electron将chatgpt-plus.top 打包成EXE文件
237 0
|
算法 数据可视化 数据挖掘
MATLAB中常用的数学函数及其应用示例
MATLAB中常用的数学函数及其应用示例
|
机器学习/深度学习 自然语言处理
解析GPT-3、GPT-4和ChatGPT关系-迈向自然语言处理的新高度“
解析GPT-3、GPT-4和ChatGPT关系-迈向自然语言处理的新高度“
511 1