[设计模式-结构型]外观模式(Facade)
2014-04-25 18:15
716 查看
概括
名称 | Facade |
结构 | |
动机 | 为子系统中的一组接口提供一个一致的界面,F a c a d e 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 |
适用性 | 当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难。F a c a d e 可以提供一个简单的缺省视图,这一视图对大多数用户来说已经足够,而那些需要更多的可定制性的用户可以越过f a c a d e 层。 客户程序与抽象类的实现部分之间存在着很大的依赖性。引入f a c a d e 将这个子系统与客户以及其他的子系统分离,可以提高子系统的独立性和可移植性。 当你需要构建一个层次结构的子系统时,使用f a c a d e 模式定义子系统中每层的入口点。如果子系统之间是相互依赖的,你可以让它们仅通过f a c a d e 进行通讯,从而简化了它们之间的依赖关系。 |
解析
形象比喻:我有一个专业的Nikon 相机, 我就喜欢自己手动调光圈、快门, 这样照出来的照片才专业, 但MM不懂这些, 教了半天也不会。幸好相机有Facade设计模式,把相机调整到自动档,只要对准目标按快门就可以了,一切有相机自动调整,这样MM也可以用这个相机给我拍张照片了。
一言以蔽之,就是提供一个简单的高层调用接口。
实例
对于一件电子产品来说, 有软件的生产,硬件的生产 和软硬件结合等部分。现在我需要调用一个方法,直接生产产品。
这里有三个文件:
Product.java -- 产品的类,
ProductFacadeImpl.java -- 产品的门面类
TestMain.java -- 测试类
/** * @author oscar999 * @date 2013-7-29 * @version V1.0 */ package designptn.facade; public class Product { public void product_soft() { System.out.println("Product Software"); } public void product_hard() { System.out.println("Product Hardware"); } public void integrate() { System.out.println("Integrate Software and Hardware"); } }
/** * @author oscar999 * @date 2013-7-29 * @version V1.0 */ package designptn.facade; public class ProductFacadeImpl { public void product(Product product) { product.product_soft(); product.product_hard(); product.integrate(); } }
/** * @author oscar999 * @date 2013-7-29 * @version V1.0 */ package designptn.facade; public class TestMain { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ProductFacadeImpl productFacade = new ProductFacadeImpl(); productFacade.product(new Product()); } }
相关文章推荐
- 设计模式-结构型模式:外观模式 Facade
- 设计模式--外观模式Facade(结构型)
- 设计模式 (9)——外观模式(Facade Pattern,结构型)
- 设计模式(九)外观模式Facade(结构型)
- 设计模式(九)外观模式Facade(结构型)
- Facade外观设计模式(结构型)
- 设计模式十一:facade(外观)——对象结构型模式
- 设计模式(九)外观模式Facade(结构型)
- C#设计模式之十外观模式(Facade Pattern)【结构型】
- 设计模式(九)外观模式Facade(结构型)
- 设计模式(九)外观模式Facade(结构型)
- 设计模式(九)外观模式Facade(结构型)
- 23种设计模式(10)_结构型_外观模式(Facade Pattern)
- "围观"设计模式(14)--结构型之外观模式(Facade Pattern)
- 设计模式之外观模式Facade(结构型)
- 十三.结构型设计模式——Facade Pattern(外观模式)
- 设计模式(九)外观模式Facade(结构型)
- C#设计模式之十外观模式(Facade Pattern)【结构型】
- 设计模式(九)外观模式Facade(结构型)
- 设计模式(九)外观模式Facade(结构型)