2009年4月17日星期五

architectural pattern的分类

第二章主要讲述architectural pattern:“Architectural patterns express fundamental structural organization schemas for software systems. Architectural patterns represent the highest-level patterns in our pattern system. They help you to specify the fundamental structure of an application.”

这一章总共包括8个模式,这些模式又分为4类:
  • From Mud to Structure
我的理解,这类的模式主要的作用是结构化,避免大型的系统成为一盘散沙(mud和a 'sea' of components or objects),让系统条理清楚。这类的模式包括: Layers pattern,the Pipes
and Filters pattern,和Blackboard pattern

  • Distributed Systems
专门针对分布式的模式,包括一个模式Broker pattern,这类模式还和另外两个模式有关,Microkernel和Pipes and Filters。

  • Interactive Systems
用于交互系统,也就是内部交互比较多的系统吧,一般的UI和MMI系统都可以算作这类系统。包括两种模式Model-View-Controller pattern和Presentation-Abstraction-Control pattern。

  • Adaptable Systems
用于对扩展性要求很高的系统,随着技术的更新,需求的变化,系统需要不断地扩展。包括两个模式:Reflection pattern 和 the Microkernel pattern

先 从From Mud to Structure的几个模式谈起,Layer模式,是针对与那些可以被多个子功能块的系统,每个或者每组功能块可以被实现为一层,但是书中也提到了,对 于一个大型的软件系统来说,有时候有些功能块的界限并不明晰,不好区分。Layer模式是三种模式中使用最广泛的,很多大型的软件都是以层来架构的,特别 的网络方面的系统,基本上都是分层架构。

the Pipes and Filters pattern 主要针对出来流数据的系统,例如视频音频流等,每个处理步骤都被封装在一个过滤器对象中,流数据在各个过滤器中通过管道传输,组合不同的过滤器能得到不同 的结果。对这个模式,我以前不知道,当我读到这里时我就有些明白了,当年在听DirectDraw和DirectShow的presentation的时 候,对于流媒体的文件,MPEG4,Mp3等等,可以用相关的工具分析里面的过滤器及接口,如果想要自己做一个播放器,也要建立相关的过滤器和管道,想到 那次presentation的内容,再结合今天读到的这个模式,我就明白了,原来这也是一种架构模式啊,我估计很多媒体播放器就是用的这个架构。

至于Blackboard pattern,书中提到这是来源于人工智能,当你要开发的系统,它的需求并不明朗,位于一个全新的不成熟的领域,那么这个时候,可以用这个模式,先做一个次优的(suboptimal)方案,待到功能逐渐明晰和成熟后,再来修改。

没有评论:

发表评论