外观模式

定义

提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统
更容易使用。

结构图

外观模式中的角色:

  • 门面角色(Facade):这是外观模式的核心。它被客户角色调用,因此它熟悉子系统的功能。它内部根据客户角色已有的需求预定了几种功能组合。

  • 子系统角色(SystemA、SystemB、SystemC):实现了子系统的功能。对子系统角色来说,facade角色与客户角色一样,是未知的,它没有任何facade角色的信息和链接。

  • 客户角色(Client):调用facade角色来完成要得到的功能。

优缺点

优点:

  • 降低了Client的使用难度,子系统对其是黑盒的。隐藏了内部细节
  • 降低了耦合性

设计原则

迪米特原则(LOW OF DEMETER):也叫最少知识原则。只和你的密友谈话。

当你设计一个系统,不管是任何对象,都要注意它所交互的类有哪些,并注意它和这些类是如何
交互的。

使用场景

  • 遥控器:一个按钮就能帮我们完成多件事情。
  • 第三方库的启动封装:一般调用init方法就能完成初始化,其内部会做许多工作。

参考

《Head First设计模式》