外观模式
1.外观模式动机及定义
1.1模式动机
在大多数情况下,无论一个网站的大小,都会提供一个网站首页。网站首页一般作为整个网站的入口,它提供了通往各个子栏目(子系统)的超链接,用户通过该首页即可进入子栏目获取所需信息。对于用户而言,只需记住网站首页的网址URL,而无须记住每一个子栏目的网址。
如果没有外观角色,即没有为网站提供一个首页,每个用户需要记住所有子栏目的URL,也就是说用户Client需要和子系统Subsystem进行复杂的交互,系统的耦合度将很大;而增加一个外观角色后,用户只需要直接与外观角色交互,用户与子系统之间的复杂关系由外观角色来实现,从而降低了系统的耦合度。
1.2模式定义
外观模式定义(Facade Pattern)定义:为子系统中的一组接口提供一个统一入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。在外观模式中,外部与一个子系统的通信可以通过一个统一的外观对象进行。外观模式又称为“门面模式”,它是一种对象结构型模式。
英文定义:“Provide a unified interface to a set of interfaces in a subsystem.Facade defines a higher-level interface that makes the subsystem easier to use.”