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

图片编辑软件seocui cn

图片编辑软件,seocui cn,wordpress制作小说站教程,小程序开店流程适配器模式: 定义:适配器模式是一种结构型设计模式,它允许接口不兼容的类一起工作。它通过将一个类的接口转换成客户端期望的另一个接口,使原本由于接口不兼容而不能一起工作的那些类可以一起工作。 代理模式: 定义&a…

适配器模式:

        定义:适配器模式是一种结构型设计模式,它允许接口不兼容的类一起工作。它通过将一个类的接口转换成客户端期望的另一个接口,使原本由于接口不兼容而不能一起工作的那些类可以一起工作。

代理模式:

        定义:代理模式也是一种结构型设计模式,为其他对象提供一种代理以控制对这个对象的访问。代理对象在客户端和目标对象之间起到中介的作用,可以添加额外的控制或处理逻辑。

对比:两种设计模式的相同之处在于都使用中间层隔离了对真实接口的访问,不同之处在于适配器模式主要针对接口不兼容的问题,而代理模式的主要目的是控制对对象的访问或添加额外的处理逻辑。

        代码:

// 抽象组件类
class Component {
public:virtual ~Component() = default;virtual void add(std::shared_ptr<Component> component) = 0;virtual void display(int depth = 0) const = 0;
};// 叶子节点:文件类
class File : public Component {
private:std::string name;
public:File(const std::string& name) : name(name) {}void add(std::shared_ptr<Component>) override {std::cerr << "File cannot have subcomponents!" << std::endl;}void display(int depth = 0) const override {for (int i = 0; i < depth; ++i) {std::cout << "--";}std::cout << name << std::endl;}
};// 容器节点:文件夹类
class Directory : public Component {
private:std::string name;std::vector<std::shared_ptr<Component>> components;
public:Directory(const std::string& name) : name(name) {}void add(std::shared_ptr<Component> component) override {components.push_back(component);}void display(int depth = 0) const override {for (int i = 0; i < depth; ++i) {std::cout << "--";}std::cout << name << "/" << std::endl;for (const auto& component : components) {component->display(depth + 1);}}
};int main() {// 创建文件和文件夹auto file1 = std::make_shared<File>("file1.txt");auto file2 = std::make_shared<File>("file2.txt");auto dir1 = std::make_shared<Directory>("dir1");auto dir2 = std::make_shared<Directory>("dir2");// 构建文件系统树dir1->add(file1);dir1->add(file2);dir2->add(dir1);// 显示文件系统树dir2->display();return 0;
}
// 抽象主题角色
class Subject {
public:virtual void request() = 0;virtual ~Subject() = default;
};// 真实主题角色
class RealSubject : public Subject {
public:void request() override {std::cout << "RealSubject: Handling request." << std::endl;}
};// 代理角色
class Proxy : public Subject {
private:std::shared_ptr<RealSubject> realSubject;bool isRealSubjectLoaded = false;public:void request() override {if (!isRealSubjectLoaded) {loadRealSubject();}realSubject->request();}void loadRealSubject() {if (!isRealSubjectLoaded) {realSubject = std::make_shared<RealSubject>();isRealSubjectLoaded = true;}}
};int main() {Subject* proxy = new Proxy();proxy->request();delete proxy;return 0;
}

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

相关文章:

  • 网站数据分析表格达州seo
  • 做政府网站运营热点军事新闻
  • 当当网网站内容建设的分析网络营销外包网络推广
  • 中旅远洋商务网站建设策划书微信推广软件有哪些
  • 在香港做网站的步骤网站设计制作的服务怎么样
  • 网站建设中的多语言翻译如何实现线上it培训机构
  • 英德建设网站搜索引擎优化网页
  • 做会员卡的网站在线制作南京百度搜索优化
  • 怎么看别人网站是哪里做的友情链接交换平台免费
  • 商务网站建设工程师seo整站网站推广优化排名
  • 党委门户网站建设意义2022年五月份热点事件
  • 门户网站建设情况总结网络推广公司方案
  • 茶叶网站建设网页设计制作社群营销策略有哪些
  • 商城和营销型网站建设seo快速上排名
  • 南山专业做网站公司西安优化外
  • 番禺网站制作价格百度推广登录后台登录入口
  • 内部劵淘网站怎么做百度首页优化排名
  • 杨浦网站建设 网站外包做网站的平台
  • 哪家做网站最便宜优秀网页设计
  • 兰州建网站北京seo产品
  • 央美老师做的家具网站北京seo分析
  • 公司网站制作设计联系方式电脑培训网上培训班
  • 网络竞价推广托管公司手机优化是什么意思
  • 做百度网站需不需要备案网站搭建外贸
  • 怎么做自己的手机网站整合营销传播案例分析
  • 网站开发去哪里培训怎么做网站教程视频
  • web前端工程师薪资南宁百度seo软件
  • 指定图片做logo网站百度在西安的公司叫什么
  • 网站建设试题 jsp山西seo排名厂家
  • 重庆网站制作外包公司如何宣传推广自己的店铺