外观模式 门面模式 Facade 结构型 设计模式(十三)
意图
意图解析
代码示例
package facade; public class Water { public void turnOn() {System.out.println("打开水龙头...");} public void turnOff() {System.out.println("关闭水龙头...");} }
package facade; public class Light {public void turnOn() {System.out.println("开灯...");} public void turnOff() {System.out.println("关灯...");} }
package facade;public class Window {public void open() {System.out.println("开窗...");} public void close() {System.out.println("关窗...");} }
优化重构
package facade;public class Facade {private Water water = new Water();private Light light = new Light();private Window window = new Window();public void leaveHome(){water.turnOff();light.turnOff();window.close();}public void backHome(){light.turnOn();window.open();}}
结构
总结
转载于:https://www.cnblogs.com/noteless/p/10058164.html
外观模式 门面模式 Facade 结构型 设计模式(十三)相关推荐
- OOAD-设计模式(四)结构型模式之适配器、装饰器、代理模式
前言 前面我们学习了创建型设计模式,其中有5中,个人感觉比较重要的是工厂方法模式.单例模式.原型模式.接下来我将分享的是结构型模式! 一.适配器模式 1.1.适配器模式概述 适配器模式(Adapter ...
- JavaScript设计模式(三):结构型设计模式-外观模式、适配器模式、代理模式、装饰者模式、桥接模式、组合模式、享元模式
JavaScript设计模式 - 结构型设计模式 套餐服务-外观模式 外观模式(Facade) 水管弯弯-适配器模式 适配器模式(Adapter) 适配异类框架 参数适配 牛郎织女-代理模式 代理模式 ...
- 享元模式 FlyWeight 结构型 设计模式(十五)
享元模式(FlyWeight) "享"取"共享"之意,"元"取"单元"之意. 意图 运用共享技术,有效的支持大量细粒度 ...
- 结构型设计模式之组合模式
结构型设计模式之组合模式 组合模式 应用场景 优缺点 主要角色 组合模式结构 分类 透明组合模式 创建抽象根节点 创建树枝节点 创建叶子节点 客户端调用 安全组合模式 创建抽象根节点 创建树枝节点 创 ...
- 结构型设计模式(二) 之 装饰者模式可给对象一层层加工
1 定义 装饰者模式(Decorator Pattern)又叫包装模式属于结构型设计模式之一,它主要用于动态地给一个对象增加一些额外扩展的功能,它是继承关系的一个替代方案,且在特定场景中比使用继承生成 ...
- 设计模式-外观模式(门面模式)
外观模式(门面模式) 外观模式介绍 定义 通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式. 该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大 ...
- 结构型设计模式(五) 之 享元模式是池技术的表现
1 定义 享元模式(Flyweight Pattern)属于结构型设计模式之一,它主要是使用共享对象有效地避免了创建过多的性质相近的对象,从而降低内存的占用,提高程序的性能.它也是池技术的重要实现方式 ...
- 技术图文:03 结构型设计模式(上)
结构型设计模式(上) 本教程主要介绍一系列用于如何将现有类或对象组合在一起形成更加强大结构的经验总结. 知识结构: 享元模式 – 实现对象的复用 Sunny 软件公司欲开发一个围棋软件,其界面效果如下 ...
- 从框架源码中学习结构型设计模式
文章目录 从框架源码学习结构型设计模式 适配器模式 应用实例 案例一:dubbo框架日志适配器 Logger接口 日志实现类 Logger适配器接口 LoggerAdapter实现类 Logger日志 ...
最新文章
- 后台开发经典书籍--linux性能优化
- 电大工商管理计算机考试,东方电大工商管理专科计算机期末复习EXCEL五题.docx...
- 【论文解读】GCN论文总结
- bzoj2753: [SCOI2012]滑雪与时间胶囊
- nginx ngx_http_mirror_module模块
- 【转】C#命名空间与java包的区别分析
- 华为这个事,是不是刷KPI?
- matlab的精度变量,MatLab - 变量精度算术
- 2012.4.10 全球IPv6暨下一代互联网高峰会议 日程表
- three轨迹线在mapbox地图上显示
- windows版本和Linux版本的ffmpeg下载使用方法
- php大文件去重,详细解说PHP多个进程配合redis的有序集合实现大文件去重
- 紫微斗数飞星派排盘批处理
- 计算机毕业设计android的学生考勤请假app(源码+系统+mysql数据库+Lw文档)
- Python技术项目实践
- mysql记录到毫秒,记录到微妙
- Windows操作系统+朝鲜红星+国产麒麟+红旗+渗透专用系统+Oracle专用+技术专栏【资源大合集】 | 寻找C站宝藏
- 18位身份证号码编码标准
- 储能逆变器,储能系统,soc均衡控制,soc均衡,蓄电池充放电控制
- 基于DOA联合TDOA时间积累的二维GDOP仿真分析
热门文章
- Android用第三方jar包ClassNotFoundException:XXX in loader dalvik.system.PathClassLoader[/app/XX.apk]...
- WSUS客户端无法发现
- centOS 7下安装与配置heartbeat高可用集群
- Android gradlew 多渠道打包
- Jquery根据JSON生成Table
- 10月25日学习内容整理:数据操作:增加更新删除,单表查询操作
- 未来数据中心核心技术:RDMA在京东的应用
- 性能调优的方法及概念
- android for vs (三)visual studio android 发布为 apk
- 解决Word 2007中更新整个目录后分节符消失问题