1、概念
为了系统的易用性,提供一个统一的接口整合所有子系统的功能。
在我们的日常生活中,也随处可见这样的示例,例如去办理业务时,公司设置的前台,统一接待处,它的作用是为了我们便捷的找到对应的业务部门去办理相关的业务。
统一接口的职责与统一接待处的职责是相似的,它是子功能的导航,起到整合的作用,它本身不实现任何的功能。
统一接口与子系统接口之间可以是继承关系,也可以是实现类的组合关系。
2、UML图
3、代码
FacadeInterface,扮演着统一接口,主要的职责是整合子系统的功能
/** * * @Title: FacadeInterface.java * @Package facadePattern * @Description: 这个接口主要的重要是整合子系统的功能 * @date 2020年2月27日 下午8:51:10 * @version V1.0 */ public interface FacadeInterface extends SubSystemA, SubSystemB, SubSystemC{ }
SubSystemA,代表任意的子系统功能,SubSystemB与SubSystemC代码与之类似
/** * * @Title: SubSystemA.java * @Package facadePattern * @Description: 子系统A的功能 * @date 2020年2月27日 下午8:52:07 * @version V1.0 */ public interface SubSystemA { /** * @Title: func1 * @Description: 功能1 */ void func1(); /** * @Title: func2 * @Description: 功能2 */ void func2(); }
4、讨论
在讨论门面模式时,不要局限于语言和实现形式,而是理解它的目的或功能。
它的主要功能是整合作用,将很多子功能整合到统一的接口中,便于系统的使用。
它的应用甚至不需要任何接口,例如美团APP,支付宝等提供的门户界面。
5、示例
- JS语言的jquery框架
- Spring框架中的ApplicationContext接口