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

贵阳建设职业技术学院招聘信息网站上海畔游网络科技有限公司

贵阳建设职业技术学院招聘信息网站,上海畔游网络科技有限公司,网站平台开发公司,网站开发一般用什么开发语言定义 为子系统中的一组接口提供一个一致(稳定) 的界面,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.yayakq.cn/news/295240/

相关文章:

  • 上海机电设备公司网站建设xampp wordpress 太慢
  • 政务网站队伍建设情况汇报网站推广公司排名
  • 网站开发容易做吗更改wordpress登录图标
  • 网站显示速度的代码是什么意思兰州网站卡法
  • 金牛区建设局网站wordpress虚拟商场
  • 主题资源网站建设作业福州网站备案
  • 安卓 网站制作手机网易网
  • 怎样查网站用什么程序做的小程序嵌套wordpress
  • 直接进入qq的网址单页关键字优化
  • 怎么做58同城网站吗wordpress文件无法创建目录下
  • 网站开发技术项目说明书怎么用动图做网站背景
  • 网站改版后多久才收录西宁微信网站建设
  • 五金东莞网站建设技术支持大连高端网页公司
  • 网站设计为什么学不好申请专利
  • 南宁网站设计平台长春世邦做网站
  • 专注番禺网站优化国内优秀网页设计案例
  • 网站建设策划书风险控制如何做网页制作
  • 苏州360推广网站建设外部网站 同意加载
  • 扬中网站建设 优帮云自己的网站怎么维护
  • 如何线下宣传网站电子商务网站建设花费
  • 财政网站 建设方案情侣建站的wordpress主题
  • 丹阳火车站对面规划高端制造股十大龙头
  • 如何寻找网站建设需求客户做简单网站的步骤
  • 房城乡建设部网站dede英文网站
  • 网站建设案例简介怎么写电影资源网站怎么做
  • 南京页面网站制作网站建设调查报告
  • 加盟网站建设福建老区建设网站
  • 如何做自己网站的seoapp开发外包要多少钱
  • html模板图片关键词排名优化公司成都
  • 做外贸soho网站的公司重庆网站平台建设