我们来看看李京东的文章是如何写的。原文地址:http://terrylee.cnblogs.com/archive/2006/03/17/352349.html
概述
在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦?这就是要说的
Façade
模式。
意图
为子系统中的一组接口提供一个一致的界面,
Facade
模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
[GOF
《设计模式》
]
示意图
门面模式没有一个一般化的类图描述,下面是一个示意性的对象图:
生活中的例子
外观模式为子系统中的接口定义了一个统一的更高层次的界面,以便于使用。当消费者按照目录采购时,则体现了一个外观模式。消费者拨打一个号码与客服代表联系,客服代表则扮演了这个
"
外观
"
,他包含了与订货部、收银部和送货部的接口。
acade
模式解说
我们平时的开发中其实已经不知不觉的在用
Façade
模式,现在来考虑这样一个抵押系统,当有一个客户来时,有如下几件事情需要确认:到银行子系统查询他是否有足够多的存款,到信用子系统查询他是否有良好的信用,到贷款子系统查询他有无贷款劣迹。只有这三个子系统都通过时才可进行抵押。我们先不考虑
Façade
模式,那么客户程序就要直接访问这些子系统,分别进行判断。类结构图下:
可以看到,在不用Façade
模式的情况下,客户程序与三个子系统都发生了耦合,这种耦合使得客户程序依赖于子系统,当子系统变化时,客户程序也将面临很多变化的挑战。一个合情合理的设计就是为这些子系统创建一个统一的接口,这个接口简化了客户程序的判断操作。看一下引入
Façade
模式后的类结构图:
- 大小: 17.4 KB
- 大小: 10.6 KB
- 大小: 11.6 KB
- 大小: 15.4 KB
分享到:
相关推荐
C#面向对象设计模式纵横谈\C#面向对象设计模式纵横谈\10.Facade 外观模式(结构型模式).wmv )
C#面向对象设计模式纵横谈(11):Facade 外观模式(结构型模式) (Level 300)
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第11节:结构型模式Facade外观模式
C#面向对象设计模式纵横谈(11):Facade 外观模式(结构型模式)
java 设计模式 Facade外观模式 Simple Factory 简单工厂模式,代码有点罗嗦,不过可移植性很强
设计模式中的facade外观模式在JavaScript开发中的运用_.docx
Ajax中使用Facade外观(门面)模式的Eclipse版本的Demo.
主要介绍了C#设计模式之Facade外观模式解决天河城购物问题,简单描述了外观模式的定义并结合具体实例分析了外观模式解决购物问题的相关步骤与操作技巧,需要的朋友可以参考下
主要介绍了C++设计模式编程中Facade外观模式的使用实例解析,外观模式的主要用途就是为子系统的复杂处理过程提供方便的调用方法,需要的朋友可以参考下
外观模式通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合,接下来就来看设计模式中的facade外观模式在JavaScript开发中的运用
23种Python设计模式示例演示源码包,比如包括了工厂模式、Bridge桥接模式、Builder构建模式、Facade外观模式、Adapter适配器模式,Composite组合模式、Decorator装饰器模式,FactoryMethod工厂方法模式、Flyweight享...
设计模式之外观模式 facade 采用JAVA实现,请结合文档看,欢迎讨论。。
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
设计模式面面观(13):外观模式(Facade Pattern)-结构型模式 http://blog.csdn.net/fanweiwei/archive/2008/04/17/2299641.aspx
C#面向对象设计模式纵横谈(11):Facade 外观模式(结构型模式) C#面向对象设计模式纵横谈(12):Flyweight 享元模式(结构型模式) C#面向对象设计模式纵横谈(13):Proxy 代理模式(结构型模式) C#面向对象设计模式...
外观模式 Facade 设计模式 还请各位大S指教。