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

系部网站建设需求分析兰州拼团网站建设

系部网站建设需求分析,兰州拼团网站建设,汽车网站建设公司,企业网站管理系统哪个好文章目录 一、什么代理模式二、代理模式的实现原理三、代理模式应用场景四、代理模式的代码实现 一、什么代理模式 代理模式是一种结构型设计模式#xff0c;它允许通过创建一个代理对象来控制对另一个对象的访问。代理对象充当了客户端和目标对象之间的中介#xff0c;可以在… 文章目录 一、什么代理模式二、代理模式的实现原理三、代理模式应用场景四、代理模式的代码实现 一、什么代理模式 代理模式是一种结构型设计模式它允许通过创建一个代理对象来控制对另一个对象的访问。代理对象充当了客户端和目标对象之间的中介可以在不改变目标对象的情况下增加额外的功能或控制访问。 二、代理模式的实现原理 定义一个接口首先需要定义一个接口该接口是代理对象和目标对象共同实现的接口。这个接口定义了客户端可以使用的方法。创建目标对象实现接口的目标对象是真正执行业务逻辑的对象。创建代理对象代理对象也实现了接口并持有一个对目标对象的引用。代理对象在执行方法时会调用目标对象的相应方法并可以在调用前后执行一些额外的操作。客户端使用代理对象客户端通过代理对象来访问目标对象而不是直接访问目标对象。客户端可以像访问目标对象一样使用代理对象而无需关心代理对象和目标对象之间的具体实现细节。 代理模式的实现可以有多种形式包括静态代理和动态代理。静态代理是在编译时就已经确定代理对象和目标对象的关系而动态代理是在运行时动态生成代理对象。 三、代理模式应用场景 远程代理当对象位于不同的地址空间时可以使用代理模式来在客户端和远程对象之间建立通信使得客户端可以透明地访问远程对象。 虚拟代理当创建一个对象需要很大的开销时可以使用代理模式来延迟对象的实例化只有在真正需要时才创建对象。这样可以提高系统的性能和资源利用率。 安全代理代理模式可以控制对真实对象的访问权限只有满足特定条件的客户端才能访问真实对象从而保护真实对象的安全性。 日志记录代理代理模式可以在调用真实对象的方法前后进行一些额外的操作比如记录日志、统计方法调用次数等。 缓存代理代理模式可以为一些昂贵的操作提供缓存当相同的请求到达时可以直接返回缓存中的结果避免重复计算。 延迟加载代理代理模式可以延迟加载真实对象只有在真正需要时才加载从而提高系统的响应速度。 举个例子假设有一个图片加载器类ImageLoader它负责从网络上下载图片并显示。为了提高性能我们可以使用代理模式来实现一个图片加载器的代理类ImageLoaderProxy。当客户端调用ImageLoaderProxy的loadImage方法时代理类会先检查本地缓存中是否存在该图片如果存在则直接返回缓存的图片如果不存在则调用实际的ImageLoader对象来下载并显示图片并将下载的图片缓存起来。这样代理类在不改变原有ImageLoader类的情况下增加了缓存功能。 四、代理模式的代码实现 //------------------------------------------------------------------ //| Proxy.mqh | //------------------------------------------------------------------ //------------------------------------------------------------------ //| interface — for patterns | //------------------------------------------------------------------ interface ClientInterface //pattern client {string Output(void); //returns headervoid Run(void); //execute the pattern client }; //------------------------------------------------------------------ //| interface — for patterns | //------------------------------------------------------------------ void Run(ClientInterface* client) //launches a pattern {printf(---\n%s,client.Output()); //print pattern headerclient.Run(); //execute client collaborationsdelete client; //exit } //------------------------------------------------------------------ //| structure | //------------------------------------------------------------------ // |Client|--------------------------| Subject | // |---------| // |Request()| // |... | // ^ // | // ------------------------------------------------... // | real_subject | // |RealSubject|-----------------| Proxy | // |-----------| |----------------------| // |Request() | |Request() | // |... | | ... | // | realSubject.Request()| // | ... | // |... | //------------------------------------------------------------------ // 定义真实主体和代理的公共接口 // 以便在任何需要真实主体的地方都可以使用代理 class Subject {public:virtual void Request(void)0; }; // 定义代理所代表的真实对象。 class RealSubject:public Subject {public:void Request(void); }; // void RealSubject::Request(void) {Print(real subject); } //维护一个引用该引用允许代理访问真实主体 class Proxy:public Subject {protected:RealSubject* real_subject;public:~Proxy(void);void Request(void); }; // Proxy::~Proxy(void) {delete real_subject; } // void Proxy::Request(void) {if(!CheckPointer(real_subject)){real_subjectnew RealSubject;}real_subject.Request(); } // class Client:public ClientInterface {public:string Output(void);void Run(void); }; string Client::Output(void) {return __FUNCTION__; } // void Client::Run(void) {Subject* subjectnew Proxy;subject.Request();delete subject; } //------------------------------------------------------------------ //| script program start function | //------------------------------------------------------------------ void OnStart() {//---structuralRun(new Proxy::Client); } //------------------------------------------------------------------ //| output | //------------------------------------------------------------------ // Proxy::Client::Output // real subject
http://www.pierceye.com/news/463859/

相关文章:

  • 长春企业网站建设网站制作公司相关工作
  • 免费课程网站有哪些兼职网站项目建设报告
  • 建立网站免费dedecms网站地图制作
  • 网页设计公司网站制作做网站最主要是那个一类商标
  • 卫生局网站建设方案网站架构设计英文翻译
  • 学做衣服网站有哪些智能开发平台软件
  • wordpress 下载站插件wordpress清楚所有评论
  • 公司网站建设工作计划网站设置受信任
  • 网站如何做实名验证码深圳企业网站推广
  • 傻瓜式大型网站开发工具餐饮业手机php网站
  • 网站建设小细节图片东阳网站建设yw126
  • 为什么找不到做网站的软件怎么做音乐mp3下载网站
  • 做一个网站需要什么网络营销方式分析论文
  • 可以做3d电影网站企业网站优化应该怎么做
  • 中山做网站联系电话app客户端开发公司
  • 秦皇岛网站推广价钱南京建设网站制作
  • 2018钓鱼网站建设邢台seo公司
  • 深圳建设交易中心网站域名网站建设
  • 做网站色弱可以吗一个网址多少钱
  • 如何查询网站接入信息产品营销网站
  • 常用博客建站程序遂溪网站开发公司
  • 网站开发软件系统安徽通皖建设工程有限公司网站
  • 意派网站开发新手篇做平面常用的网站
  • 广州网站设计费用深圳室内设计师网
  • 有什么可以做兼职的网站吗建设网站的需求分析
  • 专门做进口产品的网站6wordpress赚钱方法
  • 长兴网站建设公司郫县城乡规划建设管理局网站
  • 天津建设工程信息网站搜索引擎推广是什么工作
  • 网站的系统建设方式网站建设报价表格
  • 商城展示网站建设我劝大家不要学android