我们的主人公大维德是江苏泰兴中部一个小县城的一个暴发户的儿子,他不学无术,仗着家里开了一个厂,有着3个宅基地,好吃懒做,不学无术。虽然他还不到35岁,就已经秃顶

假如没有门面模式,那么大威德去喝茶,就要分下面几步

1.去那个茶馆

2.选一个茶叶(龙井绿茶,碧螺春绿茶)

3.烧水

4.泡茶

解决这种不便的方式就是引入门面模式。

声音甜美的 接待员 帮他把这些都一条龙办好

上代码

1.定义各个步骤,比如茶馆vip会员卡检查、选茶叶、烧水、泡茶

/*** 子系统角色中的类:FuWuTai.java、LaoBao.java、Hotel*/
class FuWuTai {//服务台检查VIP会员卡public void checkVip(){System.out.println("服务台检查VIP会员卡");}
}/*** 选人*/
class LaoBao {//根据你的需要给你推荐public void getMM(String require){if("龙井绿茶".equals(require)) {System.out.println("眉梢眼角藏秀气,声音笑貌露温柔," + require);}if("碧螺春绿茶".equals(require)) {System.out.println("芙蓉不及美人妆,水殿风来珠翠香,"+ require);}}
}/*** 烧水*/
class Hotel {//示例方法public void kaiFang(){System.out.println("烧水泡茶!");}
}

各个子系统的步骤都有了,接下来就是 提供一个高层次的接口,使得子系统更易于使用:接待员

/*** 外观模式角色类:接待员*/
public class YiHongYuanFacade {//示例方法,满足大威德找快乐的功能public void findHappy(){FuWuTai a = new FuWuTai();a.checkVip();LaoBao b = new LaoBao();b.getMM("龙井绿茶");Hotel c = new Hotel();c.kaiFang();}
}

客户端:大威德出场

public class David01 {
    public static void main(String[] args) {
        YiHongYuanFacade facade = new YiHongYuanFacade();
        facade.findHappy();
    }
}

总结:
门面模式降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类。

门面设计模式(Facade Design Pattern)是结构设计模式中的一种,门面模式的作用是为了帮助客户端更容易地与系统交互。

优点:

减少系统的相互依赖
提高系统灵活性:不管子系统内部如何变化,只要不影响到门面对象,就没有关系
提高系统安全性:只需要访问门面方法,内部方法不允许客户端访问

门面模式的缺点是:

不符合开闭原则,对修改关闭,对扩展开放

土地主大威德喝茶之:外观模式相关推荐

  1. 土地主大威德之模板方法模式

    何时使用模板模式 当一个操作的流程较为复杂,可分为多个步骤,且对于不同的操作实现类(子类),流程步骤相同,只有部分特定步骤才需要自定义,此时可以考虑使用模板模式. 言归正传,我们的主人公大威德是个花花 ...

  2. 设计模式 | 外观模式及典型应用

    前言 本文的主要内容: 介绍外观模式 示例 自己泡茶 到茶馆喝茶 外观模式总结 外观模式的典型应用 spring JDBC 中的外观模式 Mybatis中的外观模式 Tomcat 中的外观模式 SLF ...

  3. 外观模式(一):外观模式概述,外观模式结构与实现

    外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便. 1. 外观 ...

  4. 设计模式之外观模式(Facade)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  5. 设计模式C#实现(三)——外观模式

    外观模式--提供了一个统一的接口,用来访问子系统中的一群接口.外观定义了一个高层接口让子系统更容易使用. 一个外观包含了为许多对象和对他们的操作,使得重复这些操作更方便. 假如客厅里有灯(Lights ...

  6. [设计模式]外观模式

    1. 定义 外观模式 提供了一个统一的接口,用来访问子系统中的一群接口.外观定义了一个高层接口,让子系统更加容易使用. 外观不仅简化了系统内接口的使用,也将客户从组件中的子系统中解耦,外观和适配器都可 ...

  7. 外观模式 - 设计模式学习

    外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 怎么叫更加容易使用呢?多个方法变成一个方法,在外观看来,只需知道这个功 ...

  8. Python设计模式-外观模式

    Python设计模式-外观模式 代码基于3.5.2,代码如下; #coding:utf-8 # 外观模式class AlarmSensor:def run(self):print("Alar ...

  9. 设计模式之外观模式php,php设计模式(十五)外观模式

    外观模式又叫门面模式: 现在都是模块化开发了: 开发中很多时候都是在使用各种扩展包: 或者在外观模式中我们叫做子系统: 外观模式的作用就是减少子系统之间的耦合: 降低子系统的使用难度: 我们举个栗子: ...

最新文章

  1. GO语言有哪些优势?怎样入门?
  2. [BZOJ1087][SCOI2005]互不侵犯King
  3. VTK:结构化网格之Vol
  4. python 循环技巧
  5. 机器学习与数据挖掘——第二章 数据与数据预处理
  6. 如何理解和运用策略模式
  7. 电子书格式,ePub将是趋势
  8. c++多线程在异常环境下的等待
  9. 异步通信在生活中的例子_通信技术在日常生活中的作用
  10. webservice用完关闭连接_基于JavaEE平台实战WebService框架Xfire+Ajax框架DWR(租房网项目实战)...
  11. windows10一键修改开机动画
  12. OPNsense用户手册-缓存代理
  13. 国内外游戏运营模式区别
  14. java 临时文件目录_在Java中使用临时文件/文件夹
  15. 什么是机器学习(漫画版)
  16. STM32F429IGT6使用SDRAM(W9825G6KH-6)
  17. Zphyr_Bluetooth
  18. 雇佣兵(YZOJ-1089)
  19. 路由器映射 局域网开外网设置
  20. 我的2013,梦在路上

热门文章

  1. python 爬虫抓取某电商页面的商品价格
  2. H5页面添加音乐播放
  3. 股票技术图形怎么看?一文给你分析透!
  4. php ldap目录协议,PHP 通过LDAP协议,操作Windows Active Directory
  5. PC互联网-移动互联网-万物互联网
  6. 基于MATLAB的有噪声语音信号处理
  7. Linux网络环境搭建
  8. linux发展现状和学习建议
  9. html页面中加skype,分享个刚学会的电子邮件中加Skype即时联络标签的方法~有用请顶...
  10. 复旦大学计算机科学技术学院期末,复旦大学计算机科学技术学院多媒体技术基础试题...