首页 / 设计模式 / 设计模式-外观模式(Facade)
设计模式-外观模式(Facade)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了设计模式-外观模式(Facade),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1748字,纯文字阅读大概需要3分钟。
内容图文
![设计模式-外观模式(Facade)](/upload/InfoBanner/zyjiaocheng/1207/51d49aae059f42d38a6c7a5a3448c220.jpg)
外观模式又称为门面模式,为一组类似功能的集群,比如类库、子系统等,提供一致的入口供client调用
角色和职责:
1.门面(Facade)-Computer:
外观模式的核心。它被客户角色调用,它熟悉子系统的功能。内部根据客户角色的需求预定了几种功能的组合
2.子系统(Packages)=CPU、Memory、Disk:
实现了子系统的功能。它对客户角色和Facade时未知的。它内部可以有系统内的相互交互,也可以由供外界调用的接口
UML图:
具体源码:
/** * CPU */ public class CPU { /** * 启动CPU */ public void startCpu(){ System.out.println("启动CPU"); } /** * 关闭CPU */publicvoid shutdownCpu(){ System.out.println("关闭CPU"); } }
/** * 内存条 */ public class Memory { public void startMemory(){ System.out.println("启动内存"); } publicvoid shutdownMemory(){ System.out.println("关闭内存"); } }
/** * 桌面 */ public class Disk { public void startDisk(){ System.out.println("启动桌面"); } publicvoid shutdownDisk(){ System.out.println("关闭桌面"); } }
/** * 电脑 */ public class Computer { private CPU cpu = null; private Memory memory = null; private Disk disk = null; public Computer(){ this.cpu = new CPU(); this.memory = new Memory(); this.disk = new Disk(); } /** * 启动电脑 */publicvoid start(){ this.cpu.startCpu(); this.memory.startMemory(); this.disk.startDisk(); } /** * 关闭电脑 */publicvoid shutdown(){ this.cpu.shutdownCpu(); this.memory.shutdownMemory(); this.disk.shutdownDisk(); } }
public class Main { public static void main(String[] args) { Computer computer = new Computer(); computer.start();//启动电脑 System.out.println("------------------------------------------"); computer.shutdown();//关闭电脑 } }
优缺点:
优:
- 松散耦合:使得客户端和子系统之间解耦,让子系统内部的模块功能更容易扩展和维护;
- 简单易用:客户端根本不需要知道子系统内部的实现,或者根本不需要知道子系统内部的构成,它只需要跟Facade类交互即可。
- 更好的划分访问层次:有些方法是对系统外的,有些方法是系统内部相互交互的使用的。子系统把那些暴露给外部的功能集中到门面中,这样就可以实现客户端的使用,很好的隐藏了子系统内部的细节
应用场景:
为复杂的模块或子系统提供外界访问的模块
子系统相互独立
在层析结构中,可以使用外观模式定义系统的每一层的入口。
源码地址:https://github.com/qjm201000/design_pattern_facade.git
原文:https://www.cnblogs.com/qjm201000/p/10069511.html
内容总结
以上是互联网集市为您收集整理的设计模式-外观模式(Facade)全部内容,希望文章能够帮你解决设计模式-外观模式(Facade)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。