定义
提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统
更容易使用。
结构图
外观模式中的角色:
门面角色(Facade):这是外观模式的核心。它被客户角色调用,因此它熟悉子系统的功能。它内部根据客户角色已有的需求预定了几种功能组合。
子系统角色(SystemA、SystemB、SystemC):实现了子系统的功能。对子系统角色来说,facade角色与客户角色一样,是未知的,它没有任何facade角色的信息和链接。
客户角色(Client):调用facade角色来完成要得到的功能。
优缺点
优点:
- 降低了Client的使用难度,子系统对其是黑盒的。隐藏了内部细节
- 降低了耦合性
设计原则
迪米特原则(LOW OF DEMETER):也叫最少知识
原则。只和你的密友谈话。
当你设计一个系统,不管是任何对象,都要注意它所交互的类有哪些,并注意它和这些类是如何
交互的。
使用场景
- 遥控器:一个按钮就能帮我们完成多件事情。
- 第三方库的启动封装:一般调用init方法就能完成初始化,其内部会做许多工作。
参考
《Head First设计模式》