进阶学习(3.11) Facade Pattern 门面模式
1, 什么叫门面模式, 也称之为接待员模式
1.1 我更愿意称之为阿拉丁模式, 阿拉丁灯神, 你想什么, 它就直接给你实现了, 你别管中间有多少困难, 他就直接给你实现了
1.2 好下面介绍门面模式, 打个比方你就懂了,
理发店发廊, 你的需求是洗头, 或者其他什么的, 都懂=_=,
只要你拿钱进了这个门, 里面会有人实现你进这个门的需求的, 你看, 你只是进了一个门而已,
然后这么多需求, 都是门后面的人帮你做了, 一定要把门和门后拆开理解
1.3 门面模式应该是我们日常中使用最多的模式了, 比如写一个方法, 传一个文件名, 就可以本地获取文件, 并且上传到远程服务器了, 方法就是门, 方法里面的代码就是门后
2, 发廊案例
funtion king 就是一个复杂服务的集成提供, 不用自己去一个个找人, 函数里面已经封装好了
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;public class Facade {// 理发师private HashMap<String, String> waiter = new HashMap();// 洗发师private HashMap<String, String> waiter1 = new HashMap();// 黑丝小姐姐private HashMap<String, String> waiter2 = new HashMap();// 前台private HashMap<String, String> waiter3 = new HashMap();// 一条龙public void king(String name) {// 先跟前台记账waiter3.put(name, "记账");waiter1.put(name, "洗发师收到了排单");waiter.put(name, "理发师收到了排单");waiter2.put(name, "黑丝小姐姐收到了排单");}public void serviceLog() {System.out.println(waiter3);System.out.println(waiter);System.out.println(waiter1);System.out.println(waiter2);}public static void main(String[] args) {Facade facade = new Facade();facade.king("王先生");facade.serviceLog();}
}
进阶学习(3.11) Facade Pattern 门面模式相关推荐
- 进阶学习(3.14) Strategy Pattern 策略模式
1, 什么是策略模式 1.1 未达到预期目的的各种应对方案 1.2 程序代码中的每一个分支都可以称之为策略, 而策略模式,则是将行为划分到具体类, 使用类对象区分行为 2, 优缺点 2.1 减少 ...
- 进阶学习(3.13) Proxy Pattern 代理模式
1, 代理模式, 这个地方的代理不是指JDK 动态代理 2, 代理模式和策略模式很像, 要注意区分, 区分的特征就是 2.1) 装饰者可以对任何的装饰抽象实例进行装饰, https://blog.cs ...
- 进阶学习(3.9) Bridge Pattern 桥接模式
1, 什么是桥接 桥, 提供给两方, 或者多方相交汇的作用, 例如, A 函数想调用 B 函数, 常见的方法就是, 直接在A 中显式 调用B, 这样存在高耦合, 如果我们使用一个中间函数C, 在C ...
- 进阶学习(3.8) Component Pattern 组合模式
1, 什么是组合模式 一句话概括, 复杂的实体类, 一个对象里面包含多个对象, 就是一种组合, 完善对象的数据多样性, 其实大部分的设计模式, 我们再日常编程中都会使用, 有些可能使用了完整的思想, ...
- 进阶学习(3.6) Prototype Pattern 原型模式
1, 什么是原型模式 1.1 通过浅拷贝(Cloneable)或者深拷贝(二进制流), 实现对一个复杂对象的刻复, 减少从零生成对象时消耗的性能 2,有什么业务场景 2.1 数据缓存, 查询数据库 ...
- 进阶学习(3.4) Builder Pattern 建造者模式
1, 解决了什么 1.1 按照步骤拆分复杂对象的创建 1.2 能快速查找到是哪个步骤出了问题 1.2 更换蓝图就可以生产不同的具象对象 2, 参与者 需求者(Builder), ...
- 接口隔离模式之Facade(门面模式)
一.接口隔离模式之Facade(门面模式) 再组件构建过程中,某些接口之间直接依赖常常会带来很多问题,甚至根本无法实现.采用添加一层间接(稳定)接口,来隔离本来相互紧密关联的接口是一种常见的解决方案. ...
- 门面设计模式php,学习php设计模式 php实现门面模式(Facade)
这篇文章主要介绍了php设计模式中的门面模式,使用php实现门面模式,感兴趣的小伙伴们可以参考一下 一.意图 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层次的接口,使得子系统 ...
- 结构型模式(五)门面模式(Facade Pattern 外观模式)
一.模式定义 门面模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统 ...
最新文章
- 第一个MapReduce程序
- CVPR 2019 | 惊艳的SiamMask:开源快速同时进行目标跟踪与分割算法
- Java相关资料分享(视频+电子书籍)
- 文件上传至将File转换成MultiPartFile
- php培训js重要么,php何以被戏称为“世界上最好的语言”?请看它与js的对比!...
- Zen Coding Visual Studio plugin 配置
- python学习笔记(对象)
- Java虚拟机学习 - 体系结构 内存模型
- webpack 使用教程
- 员工离职时,主管应该问相关竞业的两个问题
- iOS 13问题记录
- Unicode 子集 数量统计
- win10企业版激活简便方法
- 2018-03-28-日剂
- WSO2流处理器相关学习(1)快速入门指南【转】
- PHP代码执行漏洞总结
- 赛扬J4105和赛扬N5095哪个好
- HTML简单静态页面的编写
- uniapp nvue页面 关闭输入法
- Cartov for Mac 1.0.2 无尽旅图
热门文章
- QT小例子GUI(主)线程与子线程之间的通信
- python数组改变维数
- Kerberos 原理简述
- 括号匹配算法 java_使用栈实现括号匹配算法-java
- linux启动运行级别上机,linux的启动及其运行级别
- Git使用汇总之工作区、暂存区、版本库
- 再谈应用环境下的TIME_WAIT和CLOSE_WAIT
- http提交json格式数据自动加\
- 刨根问底:C++中宽字符类型(wchar_t)的编码一定是Unicode?长度一定是16位?
- linu怎么启动oracle,请问该如何在LINUX下启动ORACLE?