williambirkin

恭喜发财!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
第十六章 外观模式

意图
外观定义了一个将子系统的一组接口集成在一起的高层接口,以提供一个一致的界面。通过这个界面,其他系统可以方便的调用系统中的功能,而忽略子系统内部的变化的发生。

使用场合
1.为一个比较复杂的子系统提供一个简单的接口。
2.将客户程序与子系统的实现部分分离,提高子系统的独立性和可移植性。
3.简化子系统间的依赖关系。

结构


效果

外观模式为用户提供使用了子系统组件的简化接口,使用户减少了处理对象的数目,并且使子系统实用简单。

使用外观模式使子系统合客户端之间实现松耦合关系,由于客户段针对其接口编程,因此子系统得变化不会印象客户端的变化,即有益于分层的体系结构的实现。

 

数据库访问类中的外观模式




分层结构与外观模式
分层体系结构是一个时髦的话题。理论上讲,分层结构可以使系统更为清晰,更具可维护性。然而在实践中,如果层次划分不合理,就会产生数据和功能的冗余。
分层的划分按功能进行,而数据是在层次之间的传递。
采用外观模式可以使层次之间的界限清晰,便于进行工作和系统调试。

封装子系统
系统升级时,经常是一个大系统的若干子系统分别升级。这时需要封装遗留的子系统,以对外提供一个简单的接口。这种封装可以减少子系统的变化对与接口的系统的影响,只要接口不发生变化,子系统即可以作为孤立的模块升级。

子系统隔离
升级与整合一个包函多个子系统的信息系统时,需要隔离这些子系统,以降低耦合性。隔离后,每个部分可以实现单独的渐进演化,整个系统的实施采用并行的方式进行。由于各子系统只是针对外观模式的界面操作。所以各个子系统的不同版本可以同时协同工作,这样便于系统的动态实施。

系统演化
当渐进演化原有系统时,可以采用外观模式封装原系统。首先开发新系统的表示层,业务逻辑采用原有系统。然后逐步修改各个功能模块,并替换原有系统。



相关模式
当需要创建独立于原有系统的子系统对象时,外观模式经常与抽象工厂一起使用。
外观模式有一点与中介者模式相似,即作为访问字系统的界面。中介者的目的是简化对象间的通信,因此需要集中不属于单个对象的功能,并且通常情况下每个对象都知道中介者的存在;而外观不引入新的功能,自系统也不知道外观的存在。
posted on 2007-01-22 09:37  williambirkin  阅读(306)  评论(0编辑  收藏  举报