门面模式
来源:互联网 发布:建网站做淘宝客 编辑:程序博客网 时间:2024/06/07 22:39
面临问题:
只需要使用某个复杂系统的子集,或者,需要以一种特殊的方式与系统进行交互。
如何“简化外部客户程序和系统间的交互接口” ?如何将外部客户程序的演化和内部子系统的变化之间的依赖相互解耦?
解决方案:
Façade为原有系统的Client提供了一个新的接口。外部与一个子系统的通信必须通过一个统一的门面(Façade)对象进行,这就是门面模式。
典型的外观角色代码:
public class Facade{private SubSystemA obj1 = new SubSystemA();private SubSystemB obj2 = new SubSystemB();private SubSystemC obj3 = new SubSystemC();public void method(){obj1.method();obj2.method();obj3.method();}}
从客户程序的角度来看,Façade模式不仅简化了整个组件系统的接口,同时对于组件内部与外部客户程序来说,从某种程度上也达到了一种“解耦”的效果----内部子系统的任何变化不会影响到Façade接口的变化 。
相关的模式:
Abstract Factory模式可以与Façade模式一起使用以提供一个接口,这一接口可用来以一种子系统独立的方式创建子系统对象。
Mediator模式与Façade模式的相似之处是,它抽象了一些已有的类的功能。
通常仅需要一个Façade对象,因此可以用Singleton模式
0 0
- 门面模式
- 门面模式
- 门面模式
- 门面模式
- 门面模式
- 门面模式
- 门面模式
- 门面模式
- 门面模式
- 门面模式
- 门面模式
- 门面模式
- 门面模式
- 门面模式
- 门面模式
- 门面模式
- 门面模式
- 门面模式
- 数据结构之链队列的实现
- android中Activity,Service和线程之间的通信
- git简易入门
- Clock Domain Crossing (CDC) Verification
- Java从控制台中读取数据的各种方法
- 门面模式
- crontab命令解释
- pcduino v2安装opencv2.4.8
- 101 LINQ Samples
- SDL与MFC的混合 .
- github的使用入门
- 写日记的好处The Power of Showing Your Work
- 百度前端研发部开发的比较实用的工具
- 设计模式一日一练:代理模式(Proxy)