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

公司网站开发制作公司品牌宣传文案范文

公司网站开发制作公司,品牌宣传文案范文,卢松松网站怎么做,滕州市做淘宝网站的介绍 外观模式中外部与一个子系统的通信通过一个统一的外观角色进行,为子系统中的一组接口提供一个一致的入口。外观模式定义了一个高层接口,这个接口使得子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。 实现 myclas…

介绍

        外观模式中外部与一个子系统的通信通过一个统一的外观角色进行,为子系统中的一组接口提供一个一致的入口。外观模式定义了一个高层接口,这个接口使得子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。

实现

myclass.h

//
// Created by yuwp on 2024/1/12.
//#ifndef DESIGNPATTERNS_MYCLASS_H
#define DESIGNPATTERNS_MYCLASS_H#include <iostream>
#include <vector>class SubSystemA {
public:void methodA();
};class SubSystemB {
public:void methodB();
};class Facade {
public:Facade();~Facade();void method();private:SubSystemA *m_subA;SubSystemB *m_subB;
};#endif //DESIGNPATTERNS_MYCLASS_H

myclass.cpp

//
// Created by yuwp on 2024/1/12.
//#include "myclass.h"void SubSystemA::methodA() {std::cout << "SubSystemA::methodA()" << std::endl;
}void SubSystemB::methodB() {std::cout << "SubSystemB::methodB()" << std::endl;
}Facade::Facade() {m_subA = new SubSystemA;m_subB = new SubSystemB;
}Facade::~Facade() {if (m_subA) {delete m_subA;}if (m_subB) {delete m_subB;}
}void Facade::method() {if (m_subA) {m_subA->methodA();}if (m_subB) {m_subB->methodB();}
}

main.cpp

#include <iostream>
#include <mutex>
#include "myclass.h"int main() {Facade *facade = new Facade();facade->method();return 0;
}

总结

优点

        1. 对客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目并使得子系统使用起来更加容易。通过引入外观模式,客户端代码将变得很简单,与之关联的对象也很少。

        2. 实现了子系统与客户端之间的松耦合关系,这使得子系统的变化不会影响到调用它的客户端,只需要调整外观类即可。

        3. 一个子系统的修改对其他子系统没有任何影响,而且子系统内部变化也不会影响到外观对象。

        4. 只是提供了一个访问子系统的统一入口,并不影响客户端直接使用子系统类。

缺点

        1. 不能很好地限制客户端直接使用子系统类,如果对客户端访问子系统类做太多的限制则减少了可变性和灵活性。

        2. 如果设计不当,增加新的子系统可能需要修改外观类的源代码,这违背了开闭原则。

练习

myclass.h

//
// Created by yuwp on 2024/1/12.
//#ifndef DESIGNPATTERNS_MYCLASS_H
#define DESIGNPATTERNS_MYCLASS_H#include <iostream>
#include <vector>class AddressBook {
public:void moveTo(const std::string &path);
};class MsgManager {
public:void moveTo(const std::string &path);
};class BackupFacade {
public:BackupFacade();~BackupFacade();void backup(const std::string &path);private:AddressBook *m_addrBook;MsgManager *m_msgManager;
};#endif //DESIGNPATTERNS_MYCLASS_H

myclass.cpp

//
// Created by yuwp on 2024/1/12.
//#include "myclass.h"void AddressBook::moveTo(const std::string &path) {std::cout << "将通讯录移动到" << path << std::endl;
}void MsgManager::moveTo(const std::string &path) {std::cout << "将短信移动到" << path << std::endl;
}BackupFacade::BackupFacade() {m_addrBook = new AddressBook;m_msgManager = new MsgManager;
}BackupFacade::~BackupFacade() {if (m_addrBook) {delete m_addrBook;}if (m_msgManager) {delete m_msgManager;}
}void BackupFacade::backup(const std::string &path) {std::cout << "------- 开始备份 ---------" << std::endl;if (m_addrBook) {m_addrBook->moveTo(path);}if (m_msgManager) {m_msgManager->moveTo(path);}std::cout << "------- 备份完成 ---------" << std::endl;
}

main.cpp

#include <iostream>
#include <mutex>
#include "myclass.h"int main() {BackupFacade *facade = new BackupFacade();facade->backup("SD卡");return 0;
}

http://www.ritt.cn/news/24294.html

相关文章:

  • 深圳网站建站建设公司地址项目网站
  • 北京 外贸网站建设寻找客户的12种方法
  • 贵州做网站的公司网站优化
  • 网址大全最新排行榜百度竞价优化排名
  • 企业网站开发报价形式网址导航推广
  • 武汉网站建设电话seo顾问多少钱
  • 网站建设好的微信营销平台
  • 广州谷歌seo廊坊seo排名扣费
  • 网站开发电商今日头条十大新闻
  • 做装饰公司网站6中国互联网协会
  • 网站 怎么做百度才能搜索出来2022年最近一周新闻大事
  • yollow网站推广站长工具排名查询
  • 陕西建设厅继续教育网站云seo
  • 成功的wordpress网站seo专业培训技术
  • 如何在阿里网站做外单广州网络公司
  • 为什么要建设公司网站百度推广管理平台
  • 银川网站建设广告公司名单江阴网站优化公司
  • t么做文献索引ot网站快速seo排名优化
  • 做汽车配件生意的网站网页代码
  • 全国疫情最新报告图无锡seo排名收费
  • 外国人做僾视频网站企业网站推广方法
  • 怎样自己做网站卖钱自己怎么免费做百度推广
  • 100m网站空间服务费发布软文
  • 平湖网站建设公司克seo优化平台
  • 网站建设服务公新郑网络推广外包
  • 域名注册网站 不认证电商网站运营
  • 网站设计模板免费互联网app推广具体怎么做
  • 大连建设主管部门网站搜索引擎优化的特点
  • 外贸网站建设模板网络广告发布
  • 网站与微信对接网站如何优化