Facade(外观模式,门面模式)
2011-06-22 08:40
344 查看
名 称
Facade(外观模式,门面模式)
意 图
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
适 用
环 境
u 当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难。Facade可以提供一个简单的缺省视图,这一视图对大多数用户来说已经足够,而那些需要更多的可定制性的用户可以越过Facade层。
u 客户程序与抽象类的实现部分之间存在着很大的依赖性。引入Facade将这个子系统与客户以及其他的子系统分离,可以提高子系统的独立性和可移植性。
u 当你需要构建一个层次结构的子系统时,使用Facade模式定义子系统中每层的入口点。如果子系统之间是相互依赖的,你可以让它们仅通过Facade进行通讯,从而简化了它们之间的依赖关系。
结 构
为内部子系统提供了一个统一的外部访问接口:
Facade(外观模式,门面模式)
意 图
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
适 用
环 境
u 当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难。Facade可以提供一个简单的缺省视图,这一视图对大多数用户来说已经足够,而那些需要更多的可定制性的用户可以越过Facade层。
u 客户程序与抽象类的实现部分之间存在着很大的依赖性。引入Facade将这个子系统与客户以及其他的子系统分离,可以提高子系统的独立性和可移植性。
u 当你需要构建一个层次结构的子系统时,使用Facade模式定义子系统中每层的入口点。如果子系统之间是相互依赖的,你可以让它们仅通过Facade进行通讯,从而简化了它们之间的依赖关系。
结 构
为内部子系统提供了一个统一的外部访问接口:
// package structure.facade; public class Boss { private Facade f; public Boss(Facade f) { this.f = f; } public void doSomething() { f.doForBoss(); } } // package structure.facade; public class Hospital { public void seeExpert() { System.out.println("预约专家看病"); } } // package structure.facade; public class Restaurant { public void order() { System.out.println("预订一桌酒席"); } } // package structure.facade; public class Facade { public void doForBoss() { Hospital h = new Hospital(); Restaurant r = new Restaurant(); h.seeExpert(); r.order(); } } // package structure.facade; public class Client { public static void main(String[] args) { Boss b = new Boss(new Facade()); b.doSomething(); } }
相关文章推荐
- 软件设计模式系列之四 门面模式(也叫外观模式,Facade) .
- 设计模式(七)门面模式(Facade Pattern 外观模式)
- 设计模式读书笔记之外观模式/门面模式(Facade)
- 我看懂的设计模式 Facade,外观模式/门面模式
- 设计模式之 外观(门面)模式 Facade
- Java设计模式——门面(外观)模式(Facade Pattern)
- 门面模式(Facade)(外观模式)—向养牛场送货
- 8.外观模式/门面模式(Facade)
- 门面模式(Facade Pattern 外观模式)
- 设计模式读书笔记之外观模式/门面模式(Facade)
- 门面模式(Facade 外观模式,对象结构型模式)
- Facade(门面、外观)模式
- 门面(Facade外观)模式
- 子系统类软件设计模式系列之三 门面模式(也叫外观模式,Facade) .
- Java设计模式——外观模式(门面模式)(Facade)
- JAVA设计模式十八:--Facade(外观模式或门面模式)
- 外观/门面模式(Facade)
- 外观/门面模式(Facade)
- 外观模式(Facade Pattern)或门面模式
- 外观模式(门面模式)--Facade