定义

外观模式,一般用在子系统与访问之间,用于对访问屏蔽复杂的子系统调用,采用耳目一新的外观类提供的简单的调用方法,具体的实现由外观类去子系统调用。

外观模式是一种中间件类型的模式,使用外观模式之后子系统的方法调用并非完全屏蔽,只是为访问者提供了一种更佳的访问方式,如果你不嫌麻烦,任然可以直接进行子系统方法调用。

举例

就是将几个类的方法合并一个。

比如:计算机类集成了,硬盘,主机,显示屏。

计算机的一个关机,可能调用硬盘关闭,主机关闭,显示屏关闭等等。

类图

实现

(com.haiwei.structure.facde)

public class ComputerFacad {private ICpu cpu;private IScreen screen;public ComputerFacad(ICpu cpu, IScreen screen) {super();this.cpu = cpu;this.screen = screen;}public void startComputer(){this.cpu.start();this.screen.start();}
}
   调用
new ComputerFacad(new CPU(),new Screen()).startComputer();

优点

1、松散耦合

外观模式松散了客户端和子系统的耦合关系,让子系统内部的模块能更容易扩展和维护。

2、简单易用

客户端不需要了解系统内部的实现,也不需要和众多子系统内部的模块交互,只需要和外观类交互就可以了。

3、更好地划分层次

通过合理使用Facade,可以帮助我们更好地划分层次。有些方法是系统对内的,有些方法是对外的,把需要暴露给外部的功能集中到Facade中,这样既方便客户端使用,也很好地隐藏了内部的细节。

设计模式.外观模式Facade相关推荐

  1. 设计模式:外观模式(Facade)

    外观模式(Facade)也叫过程模式, 外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 外观模式通过定义一个一致的接口,用以屏蔽内部子系 ...

  2. 趣谈设计模式 | 外观模式(Facade):为子系统提供高粒度接口

    文章目录 案例:自动驾驶飞机 外观模式 总结 完整代码与文档 案例:自动驾驶飞机 随着自动驾驶汽车的大卖,特X拉开始把目标转向飞行领域,打算开发出一款能够完全自动行驶的飞机,系统初步的设计如下 我们将 ...

  3. 【白话设计模式二】外观模式(Facade)

    为什么80%的码农都做不了架构师?>>>    #0 系列目录# 白话设计模式 工厂模式 单例模式 [白话设计模式一]简单工厂模式(Simple Factory) [白话设计模式二] ...

  4. 外观模式(Facade)----设计模式

    外观模式(Facade)----设计模式 文章目录 外观模式(Facade)----设计模式 什么是外观模式呢? 外观模式的基本介绍 制造一个影院管理? 实现代码 总结 什么是外观模式呢? 以我们中常 ...

  5. 如何让孩子爱上设计模式 ——11.外观模式(Facade Pattern)

    如何让孩子爱上设计模式 --11.外观模式(Facade Pattern) 标签: 设计模式初涉 场景引入 相信各位玩过LOL英雄联盟游戏的童鞋,对下面两个英雄都不会陌生吧:       分别是瑞雯和 ...

  6. 研磨设计模式之外观模式(Facade)(解决方案)

    3.2  解决方案 3.2.1  外观模式来解决 用来解决上述问题的一个合理的解决方案就是外观模式.那么什么是外观模式呢? (1)外观模式定义 这里先对两个词进行一下说明,一个是界面,一个是接口. 界 ...

  7. php facade模,PHP 设计模式之外观模式 Facade

    简单描述 外观模式(Facade pattern),为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易使用. 外观模式又称为门面模式,它是一种对象结构型模式,遵循迪米特法则,又称最少知道原则 ...

  8. 设计模式 -结构型模式_门面模式(外观模式) Facade Pattern 在开源软件中的应用

    文章目录 Pre 定义 案例 Demo V1.0 Boss直接管理 V2.0 引入外观类 PmManagerFacade 何时使用Facade Tomcat Mybatis Pre 我们先来回顾下门面 ...

  9. 外观模式(Facade) - 为系统分层次

    程序面试时经常会碰到系统分层的问题.  要你描述怎样分层, 分层的好处等. 而Java 有个外观模式(facade) 正能帮组我们对系统分层次. 一, 外观模式(Facade) 的定义 所谓外观模式, ...

最新文章

  1. python专科就业_利用Python分析复旦大学近五年转专业失败的情况
  2. 二、数据库的基本操作
  3. 数据库设计中的14个关键技巧收藏[转]
  4. ORACLE常用性能监控SQL【一】
  5. 我与前端 | 因兴趣起源
  6. JAVA web项目报错no sigar-x86-winnt.dll in java.library.path
  7. [MATLAB学习笔记] global声明全部变量
  8. 如何访问 Service?- 每天5分钟玩转 Docker 容器技术(99)
  9. LeetCode 215 Kth Largest Element in an Array
  10. Chrome 静默打印及其它启动参数
  11. .Net Micro Framework 快速入门
  12. 单选框加了css后显示不出来,layui radio 单选框 效果 显示不来 解决方法
  13. 一个页面上多个form表单的用json数据格式提交到后台
  14. 任何事情的发生必有其目的,并有助于我
  15. KVM/QEMU桥接网络设置[zz]
  16. 20191231每日一句
  17. JDK下载与安装教程
  18. 怎么对视频进行简单补帧
  19. python海龟画图函数汇总
  20. 给 21 岁的自己 6 点建议

热门文章

  1. 简述C语言中32个关键字
  2. Dirmap:一款高级Web目录文件扫描工具
  3. 冲量在线创始人刘尧:以信创软硬件结合场景为突破口“占山为王”
  4. Android 通过代码执行shell命令获取电量百分比
  5. Android版本代号
  6. JAVA外卖项目第一天 技术选型和包结构
  7. Java实现一个订餐外卖系统
  8. linux修改vlan子接口mac地址,macvlan虚拟接口
  9. 体验搜狐PaaS平台搜狐云景-自动调度(Autoscale)
  10. 持续交付2.0(一至三章)