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

海兴网站建设价格建筑工程网络计划的关键工作有哪些

海兴网站建设价格,建筑工程网络计划的关键工作有哪些,网站宣传的好处,做网站要注意些什么要求一、代理模式简介 代理模式(Proxy Pattern)是一种结构型设计模式(GoF书中解释结构型设计模式:一种用来处理类或对象、模块的组合关系的模式),代理模式是其中的一种,它可以为其他对象提供一种代…

一、代理模式简介

代理模式(Proxy Pattern)是一种结构型设计模式(GoF书中解释结构型设计模式:一种用来处理类或对象、模块的组合关系的模式),代理模式是其中的一种,它可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问。所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。

GoF一书对代理模式的介绍

代理模式适用于为其他对象提供一种代理以控制对这个对象的访问

二、代理模式的用处

  1. 控制访问权限

    • 代理模式可以用来控制对实际对象的访问。例如,可以通过代理对象实现权限验证,只允许特定用户访问实际对象。
  2. 延迟初始化(虚拟代理)

    • 代理模式可以用于延迟对象的创建和初始化。实际对象的创建可能是昂贵的操作(如加载大文件或从数据库中获取数据),可以通过代理对象来延迟实际对象的创建,直到需要时才创建。
  3. 远程代理(远程访问)

    • 代理模式可以用于处理远程对象的访问。客户端通过代理对象访问远程对象,代理对象负责处理与远程对象的通信细节。这种模式常用于分布式系统和网络应用中。
  4. 缓存代理

    • 代理模式可以用来缓存实际对象的结果。代理对象可以缓存计算结果,以避免对实际对象进行重复计算。这在处理昂贵操作或需要频繁访问的数据时特别有用。
  5. 日志记录和监控

    • 代理模式可以用来记录对实际对象的操作日志或进行监控。通过代理对象可以轻松地插入日志记录功能,以跟踪实际对象的使用情况。

三、代理模式的设计方法

设计场景

  • 出版社:实际对象,负责管理和销售书籍。
  • 淘宝、拼多多、京东:代理对象,分别提供不同的销售和服务策略。
  • 客户端:从出版社或代理对象购买书籍。

proxy.cpp

#include <iostream>
#include <memory>
#include <string>// 书店
class BookStore {
public:virtual ~BookStore() = default;virtual void sellBook(const std::string& book) const = 0;
};// 出版社,负责实际销售书籍
class Publisher : public BookStore {
public:void sellBook(const std::string& book) const override {std::cout << "出版社: 卖" << book << " 设计模式书" << std::endl;}
};// 代理类 - 淘宝
class TaobaoProxy : public BookStore {
public:TaobaoProxy() : publisher(std::make_unique<Publisher>()) {}void sellBook(const std::string& book) const override {std::cout << "淘宝: 本店购买 " << book << ",提供一条龙售后服务" << std::endl;publisher->sellBook(book);}private:std::unique_ptr<Publisher> publisher;
};// 代理类 - 拼多多
class PinduoduoProxy : public BookStore {
public:PinduoduoProxy() : publisher(std::make_unique<Publisher>()) {}void sellBook(const std::string& book) const override {std::cout << "拼多多: 本店购买 " << book << ",一半折扣出售" << std::endl;publisher->sellBook(book);}private:std::unique_ptr<Publisher> publisher;
};// 代理类 - 京东
class JingdongProxy : public BookStore {
public:JingdongProxy() : publisher(std::make_unique<Publisher>()) {}void sellBook(const std::string& book) const override {std::cout << "京东: 本店购买 " << book << ",提供质量保证" << std::endl;publisher->sellBook(book);}private:std::unique_ptr<Publisher> publisher;
};// 客户端代码
void doWorking() {std::unique_ptr<BookStore> publisher = std::make_unique<Publisher>();std::unique_ptr<BookStore> taobao = std::make_unique<TaobaoProxy>();std::unique_ptr<BookStore> pinduoduo = std::make_unique<PinduoduoProxy>();std::unique_ptr<BookStore> jingdong = std::make_unique<JingdongProxy>();// 从出版社直接购买书籍std::cout << "线下" << std::endl;publisher->sellBook("<<Gang of Four>>");std::cout << "线上" << std::endl;// 从淘宝购买书籍taobao->sellBook("<<Gang of Four>>");printf("\n");// 从拼多多购买书籍pinduoduo->sellBook("<<Gang of Four>>");printf("\n");// 从京东购买书籍jingdong->sellBook("<<Gang of Four>>");return ;
}int main() {//干活doWorking();return 0;
}

运行效果

四、总结

代理模式,作为结构型设计模式之一,广泛应用于软件设计的各个领域,其核心就是引入一个代理对象来控制对目标对象的访问。在实际生活和软件系统中,代理模式有很多体现,比如代驾、代练、代购机票等,都能看做是代理模式的实际应用。举例:在组织结构中,秘书通常被视为老板的代理,他们帮助处理外来事务,转达重要信息,代理老板的职责。此外,在网络通信中,代理服务器也是代理模式的典型应用,它提供了中转服务,对外可以隐藏内部网络结构,对内则对外部请求进行过滤和处理。在软件系统中,代理模式的典型应用包括虚拟代理、远程代理、保护代理等,可以提高系统响应能力、简化接口、控制访问等。通过这种方式,代理模式在降低系统复杂性以及提高灵活性和可维护性方面发挥了重要作用。

http://www.yayakq.cn/news/169852/

相关文章:

  • php 向网站发送数据营销网站有多种类型
  • 国外知名平面设计网站跨境电商平台网站建设广州
  • 网站刷新代码seo去哪里培训
  • 怎么管理网站大连开发区
  • 高端的网站名称3000行业关键词
  • 做爰片免费网站给我看看石家庄logo设计公司
  • 网站推广联盟北京注册公司需要什么资料
  • 怎么上传网站到ftpwordpress 弹出 广告
  • 北京网站设计公司价格重庆价格低建设网站公司
  • 做公司网站是永久性的吗团队建设网站介绍
  • 地图网站设计wordpress 逻辑代码
  • 网站开发语言为如何做能放照片的网站
  • 网站建设东莞长安镇网站建设与管理领导小组
  • 网站qq临时会话免费模板下载简历
  • 电商网站开发公司北京市建筑装饰设计工程有限公司
  • 新开传奇网站发布网单翼讯自助网站
  • 引流推广网站做一个网站要多少钱
  • 彩票网站开发制作需要什么住宅设计网站推荐
  • 网站开发新闻管理系统的背景asp网站源码安装教程
  • 山西建站管理系统开发深圳做网站建设和维护专员管理层
  • 手机建设网站的目的给自己企业怎么做网站
  • 网站打不开显示asp网站编辑难做吗
  • 长沙知名网站建设logo创意
  • 设计师的个人网站宣传册样式
  • 万盛网站建设公司专业个人网站
  • 建设公司网站的请示html个人博客完整代码
  • 自己有服务器怎么做网站龙华区是深圳最差的区
  • 个人网站里在哪点击模版it外包中心
  • 坦洲网站建设公司怎样直接输入网址打开网站
  • 网站ppt怎么做公司注册商标的流程及资料