[设计模式-结构型]外观模式(Facade)
概括
名称 |
Facade |
结构 |
|
动机 |
为子系统中的一组接口提供一个一致的界面,F a c a d e 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 |
适用性 |
|
解析
形象比喻:
我有一个专业的Nikon 相机, 我就喜欢自己手动调光圈、快门, 这样照出来的照片才专业, 但MM不懂这些, 教了半天也不会。幸好相机有Facade设计模式,把相机调整到自动档,只要对准目标按快门就可以了,一切有相机自动调整,这样MM也可以用这个相机给我拍张照片了。
一言以蔽之,就是提供一个简单的高层调用接口。
实例
对于一件电子产品来说, 有软件的生产,硬件的生产 和软硬件结合等部分。
现在我需要调用一个方法,直接生产产品。
这里有三个文件:
Product.java -- 产品的类,
ProductFacadeImpl.java -- 产品的门面类
TestMain.java -- 测试类
/** * @author oscar999 * @date 2013-7-29* @version V1.0 */
package designptn.facade;public class Product {public void product_soft() {System.out.println("Product Software");}public void product_hard() {System.out.println("Product Hardware");}public void integrate() {System.out.println("Integrate Software and Hardware");}
}
/** * @author oscar999 * @date 2013-7-29* @version V1.0 */
package designptn.facade;public class ProductFacadeImpl {public void product(Product product) {product.product_soft();product.product_hard();product.integrate();}
}
/** * @author oscar999 * @date 2013-7-29* @version V1.0 */
package designptn.facade;public class TestMain {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubProductFacadeImpl productFacade = new ProductFacadeImpl();productFacade.product(new Product());}}
[设计模式-结构型]外观模式(Facade)相关推荐
- 【设计模式_青春版】结构型|外观模式
文章目录 外观模式(结构型) 外观模式又名门面模式 结构 外观模式案例 代码实现 优缺点 优点 缺点 使用场景 在tomcat中的 外观模式(结构型) 外观模式又名门面模式 是一种通过为多个复杂的子系 ...
- 【白话设计模式二】外观模式(Facade)
为什么80%的码农都做不了架构师?>>> #0 系列目录# 白话设计模式 工厂模式 单例模式 [白话设计模式一]简单工厂模式(Simple Factory) [白话设计模式二] ...
- Java设计模式-结构型-门面模式
目录 前言 示例 前言 门面模式(也叫外观模式,Facade Pattern)在许多源码中有使用,比如 slf4j 就可以理解为是门面模式的应用.这是一个简单的设计模式,我们直接上代码再说吧. 示例 ...
- 《研磨设计模式》chap3 外观模式Facade
1. 场景1 客户自己装机,需要一一去买配件:cpu.主板... 找专业的公司,由公司去处理: 2. 场景2 代码生成工具有4个模块 client使用时依次创建3个对象 public class Cl ...
- [结构型] -- 外观模式
外观模式的提出: 为复杂的子系统调用提供一个统一的入口,使子系统与客户的耦合度降低,且客户端调用非常方便. 就像在网站浏览时,开发者为我们设定的主页一样.这样我们就无需去记住所有的子网页的URL,只需 ...
- 设计模式之【外观模式-Facade】
外观模式(Facade) 外观模式是为了解决类与类之家的依赖关系的 像spring一样,可以将类和类之间的关系配置到配置文件中 而外观模式就是将他们的关系放在一个Facade类中 降低了类类之间的耦合 ...
- 设计模式之略见一斑(外观模式Facade)
外观模式又称门面模式,它是为了给子系统中提供一个一致的界面,从面定义了一个高层接口 ,这个接口使得这一子系统更加容易使用.定义中提到的子系统指在设计中为了降低复杂性根据一定的规则,对系统进行的划分,子 ...
- 设计模式之八:外观模式(Facade)
外观模式: 为子系统中的一系列接口提供了一个统一的界面.外观模式定义了一个高层次的接口以使子系统更加easy使用. Provide a unified interface to a set of in ...
- [设计模式-结构型]代理模式(Proxy)
概括 名称 Proxy 结构 动机 为其他对象提供一种代理以控制对这个对象的访问. 适用性 在需要用比较通用和复杂的对象指针代替简单的指针的时候,使用P r o x y 模式.下面是一 些可以使用P ...
最新文章
- 即将 50 岁的雷军,重新回到手机战场
- idea与mysql连接时,遇见的小问题
- WebPart(汇总)[转载]
- HDFS EditsLog和FsImage日志机制
- ZigBee技术的应用和优势
- 学习笔记-java编程-交通灯管理器设计流程。
- vue 指令 v-on
- 程序员破解推荐系统瓶颈,带来超百亿收入增量!
- 在vue中,如何禁止回退上一步,路由不存历史记录
- 十一种值得女生交往的男生
- php php-fpm安装 nginx配置php
- 计算机网络技术毕业生实习报告_20XX计算机网络技术毕业生实习报告1000字
- 135行实现CRUD功能(PHP)
- 机器学习之One-Hot Encoding详解
- 坚持学下去!转行程序员的2020年度总结
- All clients has disconnected from. You can graceful shutdown now., dubbo version: , current host
- 解决gns3连接不上本地的几种情况
- Machine Learning Basics(2)
- IRQL深入解析(3)--与IRQ比较
- GitLab复习资料整理
热门文章
- 解决qt程序运行时的cannot create Qt for Embedded Linux data directory: /tmp/qtembedded-0
- javascript控制开始日期,和结束日期在同一个月
- Ubuntu 14.10 下安装java反编译工具 jd-gui
- 牙龈出血试试四个食疗方_新闻中心_新浪网
- 关于用户自定义控件与引用该控件的页面之间的javascript脚本冲突
- Several ports (8080, 8009) required by Tomcat v9.0 Server at localhost are already in use.解决方案
- Sonarqube plugin插件 在使用Sonar-scanner时不能 扫描 file index 动态新生成的文件 解决方案
- 算法达人看过来!你一展身手的好机会来了!
- Python自然语言处理------分类和标注词汇
- java栈和队列_栈和队列的面试题Java