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

北京专业网站制作公司管理方面的培训课程

北京专业网站制作公司,管理方面的培训课程,惠州做网站开发,新闻发布会北京疫情直播目录 1. 代理模式简介 2. 代码示例 1. 代理模式简介 代理模式是一种行为型模式。 代理模式的定义:由于某些原因需要给某对象提供一个代理以控制该对象的访问。这时,访问对象不适合或者不能直接访问引用目标对象,代理对象作为访问对象和目标…

目录

1. 代理模式简介

2. 代码示例


1. 代理模式简介

代理模式是一种行为型模式

代理模式的定义:由于某些原因需要给某对象提供一个代理以控制该对象的访问。这时,访问对象不适合或者不能直接访问引用目标对象,代理对象作为访问对象和目标对象之间的中介,代理模式也叫做委托模式。


代理模式实际上作为一个中间层,处于要操作的目标对象和客户代码之间的中间层。相当于一个中介。

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

  1. 抽象主题(抽象接口类):通过接口类声明真实主题的业务接口。
  2. 真实主题(业务实现类):实现了具体的业务,是代理对象所引用的真实对象。
  3. 代理类:提供了和真实主题相同的接口,并引用了一个真实主题对象,可以调用具体的业务接口,访问真实主题的功能。

UML类图如下所示:


以租房为例,房屋中介就相当于代理对象,房东就相当于真实主题。客户只需要和中介打交道即可。

代理对象并不真正实现服务,而是通过调用引用的真实对象的相应接口来提供服务,真正的业务还是由真实主题来完成。

代理对象的目的在于执行具体业务的前后加入一些其他的操作,比如权限控制、缓存、日志记录等功能。

这样真实的业务类就可以专注于业务的实现,其他的限制操作在代理类中实现。

代理模式的关键就在于代理类和真实主题类继承自相同的接口,并且代理模式引用一个真实的主题对象。

2. 代码示例

这里我们模拟一个计算器的程序,代理类将限制计算器的使用次数,超过使用次数上限将限制访问。

#if 1#include <iostream>using namespace std;class Subject
{
public:virtual int add(int a, int b) = 0;virtual int sub(int a, int b) = 0;
};class RealSubject : public Subject
{
public:int add(int a, int b){return a + b;}int sub(int a, int b){return a - b;}
};class Proxy : public Subject
{
private:RealSubject* m_realSubject;unsigned int m_count;
public:Proxy(RealSubject* realSubject, unsigned int count = 3){m_realSubject = realSubject;m_count = count;}int add(int a, int b){if (m_count == 0){cout << "剩余访问次数为0,无法访问" << endl;return 0;}else{m_count--;cout << "剩余访问次数:" << m_count << endl;return m_realSubject->add(a, b);}}int sub(int a, int b){if (m_count == 0){cout << "剩余访问次数为0,无法访问" << endl;return 0;}else{m_count--;cout << "剩余访问次数:" << m_count << endl;return m_realSubject->sub(a, b);}}};int main()
{RealSubject realSubject;Proxy proxy(&realSubject);cout << proxy.add(10, 5) << endl;cout << proxy.sub(10, 5) << endl;cout << proxy.add(10, 5) << endl;cout << proxy.sub(10, 5) << endl;cout << proxy.add(10, 5) << endl;return 0;
}#endif

运行结果如下图所示:

 

http://www.tj-hxxt.cn/news/20129.html

相关文章:

  • 有没有做企业网站的保定网站制作
  • 做网站永久企业培训师资格证
  • 网站方案设计视频号视频下载助手app
  • 泉州seo培训郑州客串seo
  • 泗洪做网站公司安康seo
  • 兰州网站开发哪里可以做浏览器下载安装
  • 邢台移动网站建设公司国际新闻最新消息十条摘抄
  • 梅河口做网站的公司如何推广一个项目
  • 郑州做网站服务器营销型网站建设运营
  • 做企业网站用什么cms好广告推广图片
  • 新闻类网站html模板免费下载企业网站seo哪里好
  • 顺的做网站便宜吗爱站权重查询
  • 图片做多的网站是哪个市场监督管理局官网入口
  • 装饰公司响应式网站建设案例营销心得体会感悟300字
  • wordpress未登录用户重定向关键词优化推广
  • java旅游网站开发论文seo分析及优化建议
  • 开奖网站开发福州seo关键字推广
  • 软件设计培训学校排名合肥seo管理
  • 博罗网站设计百度推广的定义
  • 徐州网站建设服务seo软件开发
  • 网站做app的软件有哪些宣传推广方案
  • 某个网站访问慢的原因友情链接发布平台
  • 开发网站制作企业网站建设报价
  • 电商网站建设与运行网站注册
  • 网赌赢了钱被网站黑了需要怎么做一份完整app运营推广方案
  • 网站禁止访问建网站需要哪些步骤
  • z怎么做优惠券网站网络营销主要做些什么
  • 商业网站开发成免费crm特色
  • js导入wordpress谷歌seo服务公司
  • 河南网站建设问一问公司免费站推广网站在线