首页 > 代码库 > 设计模式之门面模式(facade)

设计模式之门面模式(facade)

1、定义

门面模式(Facade Pattern)也叫做外观模式,是一种比较常用的封装模式。要求一个子系统的外部与其内部的通讯必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。

2、通用类图

imageimage

Facade门面角色:客户端可以调用这个角色的方法。此角色知晓子系统的所有功能和责任。一般情况下,本角色会将所有从客户端发来的请求委派到相应的子系统中去,也就是说该角色没有实际的业务逻辑,只是一个委托类。

subsystem子系统角色:可以同时有一个或多个子系统。每个子系统都不是一个单独的类,而是一个类的集合。子系统并不知道门面的存在。对于子系统而言,门面仅仅是另一个客户端而已。

3、代码清单

package Facade;/** *子系统A * 2014-8-13下午3:07:10-limiracle */public class ClassA {    public void methodA(){            }}
package Facade;/** *子系统B * 2014-8-13下午3:07:10-limiracle */public class ClassB {public void methodB(){            }}
package Facade;public class Facade {    //被委托的对象    private  ClassA classA=new ClassA();    private ClassB classB=new ClassB();    //提供给外部访问的方法    public void methodA(){        classA.methodA();    }    public void methodB(){        classB.methodB();    }}