设计模式
2016-05-18 17:25
204 查看
Facade(外观)模式:
为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。它是为子系统中的一组接口所提供的一个一致的界面。
老旧的code(尤其是将C的代码转成C++代码)或者即便不是老旧code,但涉及多个子系统时,除了重写全部代码(对于老旧code而言),我们还可能采用这样一种策略:
重新进行类的设计,将原来分散在源码中的类/结构及方法重新组合,形成新的、统一的接口,供上层应用使用。
这在某种意义上与Adapter及Proxy有类似之处,但是,Proxy(代理)注重在为Client-Subject提供一个访问的中间层,如CORBA可为应用程序提供透明访问支持,使应用程序无需去考虑平台及网络造成的差异及其它诸多技术细节;Adapter(适配器)注重对接口的转换与调整;而Facade所面对的往往是多个类或其它程序单元,通过重新组合各类及程序单元,对外提供统一的接口/界面。
为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。它是为子系统中的一组接口所提供的一个一致的界面。
老旧的code(尤其是将C的代码转成C++代码)或者即便不是老旧code,但涉及多个子系统时,除了重写全部代码(对于老旧code而言),我们还可能采用这样一种策略:
重新进行类的设计,将原来分散在源码中的类/结构及方法重新组合,形成新的、统一的接口,供上层应用使用。
这在某种意义上与Adapter及Proxy有类似之处,但是,Proxy(代理)注重在为Client-Subject提供一个访问的中间层,如CORBA可为应用程序提供透明访问支持,使应用程序无需去考虑平台及网络造成的差异及其它诸多技术细节;Adapter(适配器)注重对接口的转换与调整;而Facade所面对的往往是多个类或其它程序单元,通过重新组合各类及程序单元,对外提供统一的接口/界面。
相关文章推荐
- 线程详解
- ZooKeeper 3.4.5 分布式环境搭建详解
- Swift-自定义控件之IndicatorButton(带动画的按钮)
- c++易忘简单知识点
- ZooKeeper 3.4.5 分布式环境搭建详解
- 115. Distinct Subsequences
- 隐马尔可夫模型Hidden Markov Model(1)
- SUN(oracle)存储配置界面
- 使用$watch来监视属性或对象的变化
- 详解C++程序中定义struct结构体的方法
- Spark集群启动命令汇总
- 个人助记
- 开源新闻速递:Fedora 24 在讨论是否换用 Linux 4.6 内核
- bash功能 快捷键
- 如何让导航器下边的一部分的颜色和导航器、头部颜色相同
- error C2628: 'TestClass' followed by 'int' is illegal (did you forget a ';'?)
- [免费活动通知]RAD Studio 10.1 Berlin新产品发表 网络研讨会
- css link和@import区别用法
- 详谈String类
- SSH开发环境整合搭建