10.Facade(外观、门面)

Facade(外观、门面)

     是外部用户对象通过一个统一的门面的对象来与一个子系统进行交互。门面模式为子系统中的一组接口,提供一个统一的门面供外部对象访问。也就是门面模式定义了一个更高层次的接口让外部对象容易使用这个子系统。

 

适用情况:

1.想要为一个复杂的子系统提供简单的接口。

2.客户程序与抽象类的实现部分之间存在者很大的依赖性。

3.当需要构建一个层次结构的子系统时,使用门面模式定义子系统中每个曾的入口。如果子系统之间是相互依赖的,则可以让他们仅通过Facade进行通信,从而简化了他们之间的依赖关系。

4.在分布系统中,为了减少客户端进行远程调用的次数,可是使用门面模式来有效的减少远程调用。

 

结构:

1.门面(CFacade):门面对象是一个协调者,他知道那个子系统类要相应那些请求,能实现那些功能。他负责吧客户端请求委托给适当的子系统对象。

2.子系统(CSubSystem):负责实现子系统的功能,他们既可以被门面对象调用,也可以被客户端直接调用。他们不知道门面对象,也无需维护与门面对象的引用。

 

     门面模式工作时,使用门面对象的客户端无需直接访问子系统对象,而是由门面对象将客户端的请求传递给适当的子系统对象,让子系统对象完成实际的工作。这就是说,由门面对象来调用相关子系统的方法,并把子系统的接口转换成客户端需要的接口。原来客户端需要和多个子系统打交道,现在就变成了客户端只和一个门面对象打交道。这样一来就降低了系统之间的依赖性和复杂性。

 

 

你可能感兴趣的:(Facade)