设计模式学习笔记(十三):外观模式
1 概述 1.1 引言 根据单一权责原则,软件中将一个系统划分为若干个子系统有利于降低整个系统的复杂性,使客户类与子系统之间的通信和相互依赖关系达到最小,方法之一就是引入一个外观角色,为子系统的访问提供一个简单而单一的入口。外观模式通过引入一个新的外观角色来降低原有系统的复杂度,同时降低客户类与子系统类的耦合度。 (这里的子系统是广义的概念,可以是一个类,一个功能模块,系统的一个组成部分或者一个完整的系统) 如果没有外观角色,每个客户端可能需要和多个子系统之间进行复杂的交互,系统的耦合度很大,简化示意图如下: 而引入外观角色后,客户端只需直接与外观角色交互,客户端与子系统之间的原有复杂度由外观角色实现,从而降低系统耦合度,简化示意图如下: 外观模式要求一个子系统的外部与其内部的通信通过一个统一的外观角色进行,外观角色将客户端与子系统的内部复杂性分隔开,使得客户端只需要与外观角色打交道,而不需要与子系统内部的很多对象打交道。 1.2 定义 外观模式:外部与一个子系统的通信通过一个统一的外观角色进行,为子系统中的一组接口提供一个一致的入口。 外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式又叫门面模式,是一种对象结构型模式。 1.3 结构图 1.4 角色 Facade(外观角色):在客户端可以调用这个角色的方法