详解设计模式——外观模式
来源:互联网 发布:贪心算法实例 编辑:程序博客网 时间:2024/05/19 00:49
外观模式(Facade)
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。降低访问复杂系统的内部子系统时的复杂度。
类图:
在客户端和复杂系统之间再加一层,将调用顺序、依赖关系等处理好。举个例子:我们经常用的电脑,开机其实是个非常复杂的过程,而我们只需要按开机按钮就可以了。
模拟电脑启动,假设电脑启动顺序:启动CPU,启动内存,启动硬盘,加载数据等。
1. publicclass CPU{
2.
3. publicvoid startup(){
4. System.out.println("启动CPU");
5. }
6. }
1. publicclassMemory{
2.
3. publicvoid startup(){
4. System.out.println("启动内存");
5. }
6. }
1. publicclassDisk{
2.
3. publicvoid startup(){
4. System.out.println("启动硬盘");
5. }
6. }
1. //facade
2. publicclassComputer{
3.
4. CPU cpu;
5. Memory memory;
6. Disk disk;
7.
8. publicComputer(){
9. cpu =new CPU();
10. memory =newMemory();
11. disk =newDisk();
12. }
13.
14. publicvoid start(){
15. cpu.startup();
16. memory.startup();
17. disk.startup();
18. }
19. }
1. publicstaticvoid main(String[] args){
2. Computer computer=newComputer();
3. //启动computer是个很复杂的过程,我们并不需要知道其启动各个子系统的加载过程
4. //只需要调用computer为各个子系统提供统一的一个接口start()就可以启动computer了
5. computer.start();
6. }
外观模式优点:
- 1.减少系统相互依赖。
- 2.提高灵活性。
- 2.提高了安全性。
适用场景:
- 1.为复杂的模块或子系统提供外界访问的模块。
- 2.客户程序与抽象类的实现部分之间存在着很大的依赖性。引入facade 将这个子系统与客户以及其他的子系统分离,可以提高子系统的独立性和可移植性。
- 设计模式——外观模式详解
- 详解设计模式——外观模式
- 设计模式详解——外观模式
- 设计模式—外观模式
- 设计模式—外观模式
- 设计模式—外观模式
- 每日设计模式——外观模式
- 浅谈设计模式——外观模式
- 设计模式——外观模式(Facade)
- 设计模式——外观模式
- JAVA设计模式——外观模式
- java设计模式——外观模式
- 设计模式——外观模式
- 结构性设计模式——外观模式
- 设计模式——外观模式
- 设计模式——外观模式
- 设计模式(4)——外观模式
- C++设计模式——外观模式
- Resource is out of sync with the file system的解决办法
- Linux子进程创建
- java线程学习之Condition
- python开发虚拟环境搭建步骤
- Android 消息机制
- 详解设计模式——外观模式
- [Qt]Qt--拖拽实现
- xcodebuild和xcrun实现自动打包iOS应用程序
- BZOJ 1588 营业额统计(TREAP)
- ffplay音视频同步分析(一)
- java多线程学习之Condition,实现唤醒指定的部分线程
- TensorFlow学习笔记(八): Google 的开源技术protobuf 简介
- at java.io.ObjectOutputStream.writeObject0(Unknown Source)
- C++学习(21)