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

做预算查价格的网站是哪个中国空间网站

做预算查价格的网站是哪个,中国空间网站,关于学院网站建设的通知,哪个网站可以查公司注册信息代理模式是一种结构型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。代理模式的主要角色Subject(抽象主题):定义真实主题和代理主题的共同接口RealSubject(真实主题):实现真正的业…

代理模式是一种结构型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。

代理模式的主要角色

  1. Subject(抽象主题):定义真实主题和代理主题的共同接口

  2. RealSubject(真实主题):实现真正的业务逻辑

  3. Proxy(代理):包含对真实主题的引用,可以控制对真实主题的访问

代理模式的类型

  1. 虚拟代理:延迟创建开销大的对象

  2. 远程代理:为远程对象提供本地代表

  3. 保护代理:控制对原始对象的访问权限

  4. 智能引用代理:在访问对象时执行附加操作(如引用计数)

 代码示例

#include <iostream>
#include <memory>
#include <string>// 抽象主题
class Image {
public:virtual ~Image() = default;virtual void display() = 0;
};// 真实主题
class RealImage : public Image {
public:RealImage(const std::string& filename) : filename(filename) {loadFromDisk();}void display() override {std::cout << "Displaying " << filename << std::endl;}private:void loadFromDisk() {std::cout << "Loading " << filename << " from disk" << std::endl;}std::string filename;
};// 代理
class ProxyImage : public Image {
public:ProxyImage(const std::string& filename) : filename(filename), realImage(nullptr) {}void display() override {if (realImage == nullptr) {realImage = std::make_unique<RealImage>(filename);}realImage->display();}private:std::string filename;std::unique_ptr<RealImage> realImage;
};// 使用示例
int main() {ProxyImage image1("photo1.jpg");ProxyImage image2("photo2.jpg");// 图像第一次显示时会从磁盘加载image1.display();// 图像已经加载过,直接从内存显示image1.display();// 另一个图像第一次显示image2.display();return 0;
}

UML结构

 

 要点总结

1、“增加一层间接层”是软件系统中对许多复杂问题的一种常见解决方法。在面向对象系统中,直接使用某些对象会带来很多问题,作为间接层的proxy对象便是解决这一问题的常用手段。
2、具体proxy设计模式的实现方法、实现粒度都相差很大,有些可能对单个对象做细粒度的控制,如copy-on-write技术,有些可能对组件模块提供抽象代理层,在架构层次对对象做proxy。
3、Proxy并不一定要求保持接口完整的一致性,只要能够实现间接控制,有时候损及一些透明性是可以接受的。

代理模式的优点

  1. 可以控制对真实对象的访问

  2. 作为真实对象和客户端之间的中介,可以增加额外的功能

  3. 可以延迟真实对象的创建和初始化

  4. 可以实现远程访问

代理模式的缺点

  1. 可能会引入额外的复杂度

  2. 可能会增加响应时间(因为多了一层代理)

适用场景

  1. 需要延迟加载(Lazy Initialization)时

  2. 需要控制对原始对象的访问权限时

  3. 需要为远程对象提供本地接口时

  4. 需要为对象访问添加日志或监控时

 

http://www.dtcms.com/a/462785.html

相关文章:

  • 网站地图生成工具微信营销策略
  • 什么是 Apache Parquet?ClickHouse 与 Parquet 的交互方式/安装 clickhouse-client
  • 批量做网站国内做seo最好的公司
  • 美丽说网站建立的主要方式2017设计工作室做网站
  • Centos7 maven 安装
  • 深入了解linux网络—— 自定义协议(上)
  • 大连网站制作最好的公司建设企业网站得花多少
  • 服装公司网站源码给网站做seo的价格
  • 购买型网站建设青岛网站建设公司好找吗
  • 在网站建设中遇到的问题手工制作国庆节作品图片
  • 了游*薄俐仔斗哆消仔*游戏程序系统方案
  • jsp网站加载慢开发一款app的公司
  • 如何建设网站pdf下载个人网页制作成品代码免费
  • 邢台网站建设多少钱WordPress考试
  • 网站的集约化建设锦江建设和交通局网站
  • 长沙建网站企业网站建设流程共有几个阶段
  • 做网站人家直接百度能搜到的品牌建设费用
  • MQ 面试宝典
  • 《棒球运动规则》一级运动员年龄限制·棒球1号位
  • 中国建设银行网站 个人西部数码网站管理助手 提权
  • Linux基本指令(下)
  • 手机网站用什么软件开发html5 企业网站
  • IDEA在plugins里搜不到mybatisx插件的解决方法
  • 广州网站建设多少钱深圳网上申请个人营业执照
  • 高端响应式网站建设wordpress动态插件
  • fastadmin列表头部加按钮,点击弹出窗口提交数据保存
  • 网站进行中英文转换怎么做新手销售怎么和客户交流
  • MySQL索引调优之索引顺序是否应该“匹配查询书写顺序”?
  • 安阳网站建设开发用五百丁做名字的简历网站
  • 企业做网站的注意事项沈阳商城网站开发