外观模式:

外观模式是面向对象编程中的重要设计模式。外观类用来掩盖复杂的内部逻辑,为用户提供简洁统一的服务接口。外观类的主要功能如下:

1.通过提供简明的对外API接口,来提高程序的可阅读性和间接性。

2.提供通用的特定功能。

3.为代码重构提供一个低耦合的出发点。

good example:

class CPU {public void freeze() { ... }public void jump(long position) { ... }public void execute() { ... }
}class HardDrive {public byte[] read(long lba, int size) { ... }
}class Memory {public void load(long position, byte[] data) { ... }
}/* Facade */class ComputerFacade {private final CPU processor;private final Memory ram;private final HardDrive hd;public ComputerFacade() {this.processor = new CPU();this.ram = new Memory();this.hd = new HardDrive();}public void start() {processor.freeze();ram.load(BOOT_ADDRESS, hd.read(BOOT_SECTOR, SECTOR_SIZE));processor.jump(BOOT_ADDRESS);processor.execute();}
}/* Client */class You {public static void main(String[] args) {var computer = new ComputerFacade();computer.start();}
}

总结:

外观模式主要是为外界提供一个统一的简洁的功能接口。这也正是它不同于建造者模式的地方,建造者模式强调如何构造组合数据。

facade-pattern外观模式相关推荐

  1. 结构型模式(五)门面模式(Facade Pattern 外观模式)

    一.模式定义 门面模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统 ...

  2. java23中设计模式(1)-facade(门面,外观)模式

    java23中设计模式(1)-facade(门面,外观)模式 写在前面 学习java以来不断听到各种设计模式,各种框架也大量使用模式 面试的时候曾经也被问过关于设计模式的问题,但是一直没有 系统的了解 ...

  3. 进阶学习(3.11) Facade Pattern 门面模式

    1, 什么叫门面模式, 也称之为接待员模式 1.1 我更愿意称之为阿拉丁模式, 阿拉丁灯神, 你想什么, 它就直接给你实现了, 你别管中间有多少困难, 他就直接给你实现了 1.2 好下面介绍门面模式, ...

  4. 使用C#实现适配器模式 (Adapter Pattern) 和外观模式 (Facade Pattern)

    本文的概念内容来自深入浅出设计模式一书 现实世界中的适配器(模式) 我带着一个国标插头的笔记本电脑, 来到欧洲, 想插入到欧洲标准的墙壁插座里面, 就需要用中间这个电源适配器. 面向对象的适配器 你有 ...

  5. 【寒江雪】Go实现外观模式

    Facade Pattern    外观模式其实就是把复杂的东西给封装,由统一的接口进行操作.这样可以简化用户的使用. 例子   如果要开一家饭馆,一个饭馆分为采购的,管仓库的,切菜的,炒菜的,吃菜的 ...

  6. Java设计模式--外观模式

    1 Facade Pattern 外观模式 目的:隐藏系统的复杂性,并对外提供了一个可以访问的接口,不必关心实现的细节: 实现:在客户端和复杂系统之间再加一层,这一层将调用顺序.依赖关系等处理好. 1 ...

  7. 外观模式(Facade)

    外观模式(Facade) 外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合 ...

  8. 设计模式之【外观模式-Facade】

    外观模式(Facade) 外观模式是为了解决类与类之家的依赖关系的 像spring一样,可以将类和类之间的关系配置到配置文件中 而外观模式就是将他们的关系放在一个Facade类中 降低了类类之间的耦合 ...

  9. facade外观模式/门面模式(通过积分商城的例子理解外观模式)-设计模式

    目录 1.概述与图解 2.积分商城兑换礼品的例子 1.概述与图解 facade,外观模式,又叫门面模式.要解决的问题情境是,当一个客户端,需要调用多个子系统或者多个逻辑处理类,进而才能完成一个目标或功 ...

  10. 漫画:设计模式之 “外观模式”

    作者 | 小灰 来源 | 程序员小灰(ID:chengxuyuanxiaohui) -----  第二天  ----- ------------ 首先,肯德基提供了众多基础菜品,比如鸡翅.汉堡.薯条. ...

最新文章

  1. 图灵5周年系列活动之科普大爆炸(免费!)
  2. 深入浅出WPF开发下载
  3. 观察者设计模式二:回调函数
  4. html网络,HTML—构建网络
  5. python嵌入到qt_在Qt图形用户界面中嵌入绘图
  6. ctsc2009 移民站选址
  7. N101BCG-L21-10.1-LVDS
  8. php 5.6连接sqlserver,wamp php5.6连接sqlserver
  9. docker上安装nginx服务
  10. Spark standalone运行模式(图文详解)
  11. mvn命令传递参数和pom文件配置的关系
  12. [转]Asp.Net下导出/导入规则的Excel(.xls)文件
  13. Java基础编程经典练习题
  14. oracle pl sql面试题,SQL面试:PL/SQL面试问题和答案大全
  15. 水经注地图发布服务中件间有什么功能?
  16. RingAllreduce和NCCL
  17. python程序设计基础之turtle库制作简单的小图片
  18. 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\tsc.ps1,是指在此系统上禁止运行脚本
  19. 电子计算机进行会计核算 其会计,1. 使用电子计算机进行会计核算,其软件与其生成会计 ….doc...
  20. SQL 2005安装时报已经安装了同名实例的问题解决。(无法正确卸载干净时最管用)

热门文章

  1. vue底部选择器_Vue组件-极简的地址选择器
  2. anaconda中怎么sh_【好工具】 深度学习炼丹,你怎么能少了这款工具!JupyterLab 远程访问指南...
  3. Java JUC工具类--Exchanger
  4. java蓝桥杯 试题-基础练习-十六进制转八进制
  5. ARM和NEON指令 very nice
  6. 如何创造出更优秀的用户体验?
  7. 架构设计--仅是软件开发之第二大影响力?!
  8. vue 2 使用 Bus.js 实现兄弟 (非父子) 组件通信 简单案例
  9. java.util.UnknownFormatConversionException: Conversion = ‘,‘ 解决
  10. Apache - Storm