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

企业网站制作服务沈阳网站建设公司

企业网站制作服务,沈阳网站建设公司,财经app制作公司,网页设计实训总结报告大全定义 为子系统中的一组接口提供一个一致(稳定) 的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用(复用)。 应用场景 上述A方案的问题在于组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子…

定义

为子系统中的一组接口提供一个一致(稳定) 的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用(复用)。

应用场景

在这里插入图片描述

  • 上述A方案的问题在于组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。
  • 如何简化外部客户程序和系统间的交互接口?如何将外部客户程序的演化和内部子系统的变化之间的依赖相互解耦?

结构

在这里插入图片描述

代码示例

//Facade.h
/****************************************************/
#ifndef FACADE_H
#define FACADE_H
#include <iostream>
#include <list>
#include <vector>
#include <string>using namespace std;// 厨师
class Cook
{
public:// 炒菜void cookMeal(vector<string> menu) {for (int i = 0; i < menu.size(); ++i) {cout << "正在炒:" << menu[i] << endl;}}
};// 服务员
class Waiter
{
public:// 点菜void orderDishes(vector<string> menu) {for (int i = 0; i < menu.size(); ++i) {cout << "点菜:" << menu[i] << endl;}}// 收拾void clear() {cout << "打扫卫生。" << endl;}};// 前台
class Reception
{
public:// 欢迎void welcome() {cout << "欢迎光临!" << endl;}// 买单void bill() {cout << "买单完成,欢迎下次再来!" << endl;}};// 门面
class Facade
{
public:// 构造函数Facade() {m_cook = new Cook();m_waiter = new Waiter();m_reception = new Reception();}// 析构函数~Facade() {if (m_cook != nullptr) {delete m_cook;m_cook = nullptr;}if (m_waiter != nullptr) {delete m_waiter;m_waiter = nullptr;}if (m_reception != nullptr) {delete m_reception;m_reception = nullptr;}}// 经营void manage(vector<string> menu) {// 欢迎m_reception->welcome();// 服务员点菜m_waiter->orderDishes(menu);// 厨师炒菜m_cook->cookMeal(menu);// 客人用餐cout << "客人用餐中。" << endl;// 买单m_reception->bill();// 打扫卫生m_waiter->clear();}private:Cook *m_cook;Waiter *m_waiter;Reception *m_reception;
};#endif
//test.cpp
/****************************************************/
#include "Facade.h"
int main()
{Facade *facade = new Facade();// 餐馆运营vector<string> menu = { "红烧肉","土豆丝","酸菜鱼" };facade->manage(menu);delete facade;facade = nullptr;return 0;
}

运行结果
在这里插入图片描述

要点总结

  • 从客户程序的角度来看,Facade模式简化 了整个组件系统的接口,对于组件内部与外部客户程序来说,达到了一-种“ 解耦 ”的效果——内部子系统的任何变化不会影响到Facade接口的变化。
  • Facade设计模式更注重从架构的层次去看整个系统,而不是单个类的层次。Facade很多时候更是一种架构设计模式。
  • Facade设计模式并非一个集装箱,可以任意地放进任何多个对象。Facade模式中组件的内部应该是“相互耦合关系比较大的一系列组件”,而不是一个简单的功能集合。
http://www.hengruixuexiao.com/news/8748.html

相关文章:

  • 做木工的网站上海单个关键词优化
  • 建设网站需要展示什么区别合肥网站建设
  • 关于我们 网站网络优化师
  • plc编程培训机构广州seo关键词优化费用
  • 成立公司需要几个股东郑州seo优化阿亮
  • 网站规划网站建设报价表北京百度seo服务
  • 北京外贸营销网站建设费用网站定制的公司
  • 网站上传不了图片是什么原因佛山网络排名优化
  • 网站建设宣传资料黑帽seo技术论坛
  • 香港永久网站长沙seo网站管理
  • 北仑网站制作百度seo综合查询
  • 朝鲜族做的电影网站网站推广软件下载
  • node.js可以做网站营销策划公司经营范围
  • php网站后台管理系统网络营销意思
  • 那些网站可以做外链百度教育官网登录入口
  • 现在网站建设尺寸一般多少域名注册查询阿里云
  • 视频解析网站怎么做的网站推广策划报告
  • 惠阳做网站怎么拿到百度推广的代理
  • 微信小程序开发教程从零开始seo优化排名推广
  • wordpress 注册中文名台州网站优化公司
  • 静安网站开发百度百科分类方法
  • 广西柳州网站建设网站建设培训机构
  • 什么网站可以做饼图厦门百度推广排名优化
  • 网站建设与优化站长工具外链查询
  • 好看网站手机版免费域名解析网站
  • 重庆建工集团股份有限公司官网宁德seo
  • 做a小视频免费观看网站seo系统教程
  • 用rp怎么做网站导航菜单福州网站建设团队
  • 旅游设计专业网站360搜索建站
  • 企业网站建设的公司有哪些广告做到百度第一页