外观模式(Pacade Pattern)
来源:互联网 发布:贵阳大数据就是吹牛 编辑:程序博客网 时间:2024/05/21 11:33
1. 外观模式定义
外观模式:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
类图:
2. 实例
//测试public class FacadePatternTest { public static void main(String[] args){ Computer computer=new Computer(); computer.start(); computer.shutdown(); }}//CPUclass CPU{ public void start(){ System.out.println("cpu start up!"); } public void shutdown(){ System.out.println("cpu shutdown!"); }}//Memoryclass Memory{ public void start(){ System.out.println("Memory start up!"); } public void shutdown(){ System.out.println("Memory shutdown!"); }}//Diskclass Disk{ public void start(){ System.out.println("Disk start up!"); } public void shutdown(){ System.out.println("Disk shutdown!"); }}//Computer,the facade classclass Computer{ private CPU cpu=null; private Memory memory=null; private Disk disk=null; public Computer(){ cpu=new CPU(); memory=new Memory(); disk=new Disk(); } public void start(){ System.out.println("start the computer!"); cpu.start(); memory.start(); disk.start(); System.out.println("start computer finished!"); } public void shutdown(){ System.out.println("begin to shutdown the computer"); cpu.shutdown(); memory.shutdown(); disk.shutdown(); System.out.println("computer shutdown finished!"); }}
如果我们没有Computer类,那么,CPU、Memory、Disk他们之间将会相互持有实例,产生关系,这样会造成严重的依赖,修改一个类,可能会带来其他类的修改,这不是我们想要看到的.
有了Computer类,他们之间的关系被放在了Computer类里,这样就起到了解耦的作用,这,就是外观模式!
0 0
- 外观模式(Pacade Pattern)
- 对象结构型模式——外观模式(Pacade Pattern)
- 外观模式(facade pattern)
- 外观模式(Facade Pattern)
- 外观模式(Facade Pattern)
- 外观模式(Facade Pattern)
- 外观模式(Facade Pattern)
- 外观模式(Facade Pattern)
- 外观模式(Facade pattern)
- 外观模式(Facade Pattern)
- 外观模式(Facade Pattern)
- 设计模式-外观模式(Facade Pattern)
- 【设计模式】 外观模式(Facade Pattern)
- 【设计模式】外观模式(Facade Pattern)
- 适配器模式(Adapter Pattern)、外观模式(Facade Pattern)
- 外观模式(facade pattern)(看电影)
- 外观模式(Façade Pattern)
- 外观模式(Façade Pattern)
- Android 系统的自启动原理
- 非线性方程(组)的求解
- leetcode 409. Longest Palindrome
- NS3学习资料
- 快速软件开发——项目修复(笔记)
- 外观模式(Pacade Pattern)
- CXF系列之JAX-WS:SOAP服务
- do{...}while(0)的意义和用法
- 手机端:关于时间控件(type="date/time/week等")的默认提示
- gstreamer学习笔记:通过gst-launch工具抓取播放的音频数据并通过upd传输
- phpstorm10.0.3破解版安装教程及汉化方法
- 抽象数据类型之表(List)
- Remove Linked List Elements ---LeetCode
- 【TextView】自定义TextView中文换行排版问题修复