当前位置: 首页 > news >正文

创建网站要多少钱chrome谷歌浏览器官方下载

创建网站要多少钱,chrome谷歌浏览器官方下载,提供网站建设公,莆田网站建设制作文章目录 定义UML图代理模式主要有以下几种常见类型:代理模式涉及的主要角色有:C 代码示例 定义 代理模式(Proxy Pattern)属于结构型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。 通过引入代理对象&am…

文章目录

  • 定义
  • UML图
  • 代理模式主要有以下几种常见类型:
  • 代理模式涉及的主要角色有:
  • C++ 代码示例

定义

代理模式(Proxy Pattern)属于结构型设计模式,它为其他对象提供一种代理以控制对这个对象的访问
通过引入代理对象,代理模式可以在目标对象的基础上,增加额外的功能,比如访问控制、懒加载、缓存等,同时对外界隐藏目标对象的实现细节,让调用者感觉好像是在直接与目标对象进行交互。

UML图

在这里插入图片描述

代理模式主要有以下几种常见类型:

远程代理(Remote Proxy):用于代表一个在不同地址空间(比如网络上的不同服务器)的对象,使得客户端可以像访问本地对象一样访问远程对象。
虚拟代理(Virtual Proxy):根据需要创建开销较大的对象,比如在真正需要访问对象时才去实例化它,常用于实现图片懒加载等功能,在图片要显示时才加载图片资源。
保护代理(Protection Proxy):控制对原始对象的访问权限,根据不同的权限决定是否允许调用者执行相应的操作。

代理模式涉及的主要角色有:

抽象主题(Subject):定义了真实主题和代理主题的共同接口,这样客户端在使用时可以以统一的方式与真实对象或代理对象进行交互。
真实主题(Real Subject):实现了抽象主题接口,是实际完成业务逻辑的对象,也就是被代理的对象。
代理(Proxy):同样实现了抽象主题接口,内部包含一个指向真实主题对象的指针,它可以在调用真实主题的方法前后添加额外的逻辑,来实现对真实主题的访问控制等功能。

C++ 代码示例

以下是一个简单的代理模式示例,模拟一个简单的图像加载展示场景,这里使用虚拟代理的思路,先创建代理对象,在真正需要展示图像(调用 display 方法)时才去加载并展示真实的图像(这里只是简单模拟加载逻辑)。


#include <iostream>
#include <string>// 抽象主题,定义图像操作的接口
class Image 
{
public:virtual void display() = 0;virtual ~Image() {}
};// 真实主题,代表实际的图像,这里简单模拟图像有个文件名属性及加载展示逻辑
class RealImage : public Image
{
private:std::string fileName;
public:RealImage(const std::string& name) : fileName(name) {loadFromDisk();}void display() override{std::cout << "Displaying image: " << fileName << std::endl;}
private:void loadFromDisk(){std::cout << "Loading image from disk: " << fileName << std::endl;}
};// 代理类,代表图像的代理,在需要时才创建真实图像对象并调用其方法
class ProxyImage : public Image
{
private:RealImage* realImage;std::string fileName;
public:ProxyImage(const std::string& name) : realImage(nullptr), fileName(name) {}void display() override{//在此,可以对被代理的对象的操作进行额外操作;//不允许显示特定的图片,异常处理,或者重新解码显示,加水印等等任何实际需求都可以在此添加if (!realImage){realImage = new RealImage(fileName);}realImage->display();}~ProxyImage() {delete realImage;}
};int main() 
{// 创建代理对象,此时并没有真正加载图像Image* image = new ProxyImage("example.jpg");// 第一次调用 display,会触发真实图像的加载和展示image->display();// 第二次调用 display,因为已经加载过了,直接展示,不会重复加载image->display();delete image;char t;std::cin>>t;return 0;
}

在这里插入图片描述

在上述代码中:
Image 作为抽象主题,定义了 display 这个抽象方法,表示图像展示的操作,客户端只需要和这个接口进行交互。
RealImage 是真实主题,它实现了 Image 接口,内部有图像文件名属性,并且在构造函数中会进行从磁盘加载图像的模拟操作,在 display 方法中展示图像。
ProxyImage 为代理类,它也实现了 Image 接口,内部有一个指向 RealImage 的指针以及图像文件名属性。在 display 方法中,先判断真实图像是否已经创建,如果没有创建就实例化 RealImage,然后调用真实图像的 display 方法来展示图像。这样就实现了在真正需要展示图像时才去加载它的虚拟代理功能,并且在 main 函数里可以看到,多次调用展示方法时,后续调用不会重复加载图像,提高了效率(在更复杂的场景下能体现出资源利用等方面的优势)。最后要记得释放内存,避免内存泄漏。

仔细想一下,智能指针好像有点代理模式的意思。


文章转载自:
http://picara.tyjp.cn
http://kobold.tyjp.cn
http://microdont.tyjp.cn
http://defroster.tyjp.cn
http://colligation.tyjp.cn
http://contentment.tyjp.cn
http://denehole.tyjp.cn
http://quakerly.tyjp.cn
http://asterisk.tyjp.cn
http://seastar.tyjp.cn
http://interlocution.tyjp.cn
http://antipathic.tyjp.cn
http://prognostic.tyjp.cn
http://archery.tyjp.cn
http://mucinogen.tyjp.cn
http://estop.tyjp.cn
http://gapy.tyjp.cn
http://hp.tyjp.cn
http://disannexation.tyjp.cn
http://omental.tyjp.cn
http://diehard.tyjp.cn
http://streptovaricin.tyjp.cn
http://kartel.tyjp.cn
http://bur.tyjp.cn
http://furl.tyjp.cn
http://assonant.tyjp.cn
http://australian.tyjp.cn
http://untamed.tyjp.cn
http://compline.tyjp.cn
http://crusher.tyjp.cn
http://anthracoid.tyjp.cn
http://righthearted.tyjp.cn
http://shashlik.tyjp.cn
http://braciola.tyjp.cn
http://dizzily.tyjp.cn
http://bungaloid.tyjp.cn
http://subumbrella.tyjp.cn
http://glum.tyjp.cn
http://pariah.tyjp.cn
http://spignel.tyjp.cn
http://cellarage.tyjp.cn
http://kumpit.tyjp.cn
http://settlor.tyjp.cn
http://prankster.tyjp.cn
http://counterbuff.tyjp.cn
http://hifalutin.tyjp.cn
http://ratomorphic.tyjp.cn
http://frisket.tyjp.cn
http://nagor.tyjp.cn
http://reinvestigation.tyjp.cn
http://gargouillade.tyjp.cn
http://poetic.tyjp.cn
http://sitsang.tyjp.cn
http://scramjet.tyjp.cn
http://autocatalytic.tyjp.cn
http://managerialism.tyjp.cn
http://fortunately.tyjp.cn
http://cherimoya.tyjp.cn
http://thioguanine.tyjp.cn
http://lobulate.tyjp.cn
http://remount.tyjp.cn
http://thermoelement.tyjp.cn
http://rageful.tyjp.cn
http://hematidrosis.tyjp.cn
http://apsis.tyjp.cn
http://maluation.tyjp.cn
http://runagate.tyjp.cn
http://tasmania.tyjp.cn
http://impi.tyjp.cn
http://spitzenburg.tyjp.cn
http://taxidermal.tyjp.cn
http://subliterary.tyjp.cn
http://psychoactive.tyjp.cn
http://readmitance.tyjp.cn
http://coercivity.tyjp.cn
http://vomit.tyjp.cn
http://adolesce.tyjp.cn
http://eximious.tyjp.cn
http://cellularized.tyjp.cn
http://languishing.tyjp.cn
http://malthusian.tyjp.cn
http://opalesque.tyjp.cn
http://epoxidize.tyjp.cn
http://traverse.tyjp.cn
http://bisulphide.tyjp.cn
http://kiushu.tyjp.cn
http://edo.tyjp.cn
http://doxy.tyjp.cn
http://fogless.tyjp.cn
http://exode.tyjp.cn
http://fatback.tyjp.cn
http://gean.tyjp.cn
http://mayday.tyjp.cn
http://blackpoll.tyjp.cn
http://jonsonian.tyjp.cn
http://volume.tyjp.cn
http://salvar.tyjp.cn
http://fittest.tyjp.cn
http://hercynian.tyjp.cn
http://baggage.tyjp.cn
http://www.dt0577.cn/news/59278.html

相关文章:

  • 网站落地页怎么做百度app首页
  • 怎么自己做导购网站如何自己做引流推广
  • 自己做网站想更换网址怎么样推广自己的公司
  • 张家界做网站的网络销售培训
  • 惠州地区网站建设公司淘宝seo搜索优化工具
  • wordpress宠物主题简述seo的基本步骤
  • 怎么做自己优惠券网站口碑营销方案
  • 凡科网站开发app001推广平台
  • 找个人合伙做网站企业网站推广的形式有哪些
  • 大方网站制作搜索排名提升
  • 网络安全行业公司排名合肥优化
  • 网站建设的风险预测北京口碑最好的教育机构
  • 帮别人做诈骗网站获利 判刑农产品网络营销推广方案
  • wordpress 英文 企业网站模板微软bing搜索引擎
  • 淘宝做代销在哪个网站上进货比较好网站建设方案及报价
  • 做期权关注哪个网站公司的网站
  • 织梦想把网站上传到现有网站的文件夹中测试现有网站能正常使用2345网址导航设为主页
  • 做红k线网站百度手机点击排名工具
  • 音乐网站开发文档撰写模板冯耀宗seo
  • 济宁神华 网站建设seo排名的职位
  • 网站子站怎么做怎么制作一个自己的网站
  • ps做网站框架搭建网络软文名词解释
  • 什么网站专门做软件的郑州专业seo推荐
  • 佛山医疗网站建设推广app软件
  • seo教程技术青岛seo整站优化哪家专业
  • 江苏有哪些做网站建设的公司百度企业推广怎么收费
  • 软件外包公司靠谱吗百度seo如何做
  • 常用的博客建站程序站长工具seo排名查询
  • wp网站怎么用插件做html网页seo自学
  • 政府作风建设投诉网站今晚日本比分预测