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

虚拟主机网站南阳微网站

虚拟主机网站,南阳微网站,公司网站备案需要什么资料,惠州网站建设如何文章目录 定义UML图代理模式主要有以下几种常见类型#xff1a;代理模式涉及的主要角色有#xff1a;C 代码示例 定义 代理模式#xff08;Proxy Pattern#xff09;属于结构型设计模式#xff0c;它为其他对象提供一种代理以控制对这个对象的访问。 通过引入代理对象代理模式涉及的主要角色有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::cint;return 0; }在上述代码中 Image 作为抽象主题定义了 display 这个抽象方法表示图像展示的操作客户端只需要和这个接口进行交互。 RealImage 是真实主题它实现了 Image 接口内部有图像文件名属性并且在构造函数中会进行从磁盘加载图像的模拟操作在 display 方法中展示图像。 ProxyImage 为代理类它也实现了 Image 接口内部有一个指向 RealImage 的指针以及图像文件名属性。在 display 方法中先判断真实图像是否已经创建如果没有创建就实例化 RealImage然后调用真实图像的 display 方法来展示图像。这样就实现了在真正需要展示图像时才去加载它的虚拟代理功能并且在 main 函数里可以看到多次调用展示方法时后续调用不会重复加载图像提高了效率在更复杂的场景下能体现出资源利用等方面的优势。最后要记得释放内存避免内存泄漏。 仔细想一下智能指针好像有点代理模式的意思。
http://www.hkea.cn/news/14457135/

相关文章:

  • 做网站有什么好处吗公司网站开发 建设
  • 网站建设新手如何自己做网站云南网站建设维修公司哪家好
  • 营销类wordpress主题优化合作平台
  • 网站注册和进入aspwordpress域名如何申请
  • 网站基础风格创建网站设计制作上海
  • 玉溪市建设厅官方网站app设计方案模板
  • 网站用什么做关键词桂林象鼻山水月洞
  • 中国空间站有几个舱段建设一个网站平台
  • 怎么建设自己个人网站wordpress网站修改域名
  • 广州网站建设免费荆州企业网站建设
  • 在家做兼职官方网站平台网站与app的本质区别
  • 用个人电脑做网站的步骤sem投放
  • 广东网站建设开发公司用php做的博客网站有哪些
  • 网站提升收录品牌建设的本质英语作文
  • 设计网站免费素材提交百度一下
  • 网站建设 9a网站建设营销话术
  • 市城乡规划建设局网站免费入驻的网站设计平台
  • 网站建设与管理自考试题及答案优斗士做网站怎么样
  • 如何在网站开发客户自己做网站大概多少钱
  • 微信小程序视频网站开发教程巩义云启网站建设
  • 做宠物服务的相关网站cvm服务器做网站
  • 手机怎么做网站教程cosy主题wordpress
  • 北京顺义做网站网站开发课设心得体会
  • 广州设计网站公司做网站要企业认证
  • 陕西省交通建设公司网站怎么诊断网站
  • 对于学校网站建设的建议免费的app开发工具
  • 天津网站建设开发有哪些wordpress 搜索 任意
  • 一个网站建设需要多少人力深圳建筑公司公章
  • 网站主体负责人和网站负责人国外电商怎么做
  • 建企业网站程序系统wordpress添加新页面是什么意思