Java设计模式十七:外观模式(Facade)
2012-12-13 14:04
549 查看
外观模式也许是我们每天都用到的,下面就稍微解释一下吧。
外观模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面。
它与Adapter和Proxy有类似之处,但是Proxy注重在为Client-Subject提供一个访问的中间层,Adapter注重对接口的转换与调整,而Facade所面对的往往是多个类或其他程序单元,通过重新组合各类及程序单元,对外提供统一的接口/界面。
在遇到以下情况使用Facade模式:
1. 当你要为一个复杂子系统提供一个简单接口时。
2. 客户程序与抽象类的实现部分之间存在着很大的依赖性。引入Facade将这个子系统与客户以及其他的子系统分离,可以提高子系统的独立性和可移植性。
3. 当你需要构建一个层次结构的子系统时,使用Facade模式定义子系统中每层的入口点,如果子系统之间是相互依赖的,你可以让他们仅通过Facade进行通讯,从而简化了他们之间的依赖关系。
优点:
1. 它对客户屏蔽子系统组件,因而减少了客户处理的对象的数目并使得子系统使用起来更加方便。
2. 它实现了子系统与客户之间的松耦合关系,而子系统内部的功能组件往往是紧耦合的。
3. 如果应用需要,它并不限制他们使用子系统类。因此你可以在系统易用性和通用性之间加以选择。
外观模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面。
它与Adapter和Proxy有类似之处,但是Proxy注重在为Client-Subject提供一个访问的中间层,Adapter注重对接口的转换与调整,而Facade所面对的往往是多个类或其他程序单元,通过重新组合各类及程序单元,对外提供统一的接口/界面。
在遇到以下情况使用Facade模式:
1. 当你要为一个复杂子系统提供一个简单接口时。
2. 客户程序与抽象类的实现部分之间存在着很大的依赖性。引入Facade将这个子系统与客户以及其他的子系统分离,可以提高子系统的独立性和可移植性。
3. 当你需要构建一个层次结构的子系统时,使用Facade模式定义子系统中每层的入口点,如果子系统之间是相互依赖的,你可以让他们仅通过Facade进行通讯,从而简化了他们之间的依赖关系。
优点:
1. 它对客户屏蔽子系统组件,因而减少了客户处理的对象的数目并使得子系统使用起来更加方便。
2. 它实现了子系统与客户之间的松耦合关系,而子系统内部的功能组件往往是紧耦合的。
3. 如果应用需要,它并不限制他们使用子系统类。因此你可以在系统易用性和通用性之间加以选择。
相关文章推荐
- Java设计模式十七:外观模式(Facade)
- Java设计模式----外观模式(Facade)
- JAVA设计模式(DESIGN PATTERNS IN JAVA)读书摘要 第1部分接口型模式——第4章 外观(Facade)模式
- Java设计模式:外观模式(Facade Pattern)与最少知识原则
- java23中设计模式——结构模式——Facade(外观 )
- java_设计模式_外观模式_Facade Pattern(2016-08-09)
- Java设计模式-外观模式(Facade)
- JAVA设计模式之外观模式(Facade)
- Java设计模式——外观模式(门面模式)(Facade)
- (9)Java设计模式-外观模式(Facade)
- Java设计设计模式之外观模式(Facade)
- Java设计模式--Facade外观模式
- Java开发中的23种设计模式之九:外观模式(Facade)
- Java设计模式——门面(外观)模式(Facade Pattern)
- Java开发中的23种设计模式详解----外观模式(Facade)
- JAVA设计模式十九--Facade(外观模式)
- 浅谈JAVA设计模式之——外观模式(Facade)
- java设计模式——外观模式(Facade Pattern)
- (2)JAVA设计模式十九--Facade(外观模式)
- java设计模式之外观模式Facade