定义 :
门面模式是对象的结构模式,门面模式提供了一个统一的接口,用来访问子系统中的一群接口。门面定义了一个高层接口,让子系统更容易使用。
其目的是简化子系统的接口,并将客户端从子系统中解耦。
结构和角色 :
门面角色(Facade) : 客户端可以调用这个角色的方法,然后将客户端发来的请求委派到相应的子系统去。
子系统角色(Subsystem) : 子系统可以被客户端直接调用,或者被门面角色调用。子系统并不知道门面的存在,对于子系统而言,门面仅仅是另外一个客户端而已。
实例 coding ....
什么情况下使用门面模式 :
为一个复杂子系统提供一个简单的接口。子系统往往因为不断演化而变得越来越复杂,使用门面模式可以使得子系统更具可重用性。
子系统的独立性,门面模式将客户端与子系统分离,可以提高子系统的独立性和可移植性。
设计原则
迪米特法则(LoD) : 又叫最少知识原则(Least Knowledge), "只和你直接的朋友通信"。
其实就是减少类之间的依赖关系,降低耦合。