选择显示字体大小

软件的架构与设计模式之模式的种类

由于[gof95]是论述软件模式的著作的第一本,也是oo设计理论著作中最流行的一本,因此有些人常常使用设计模式(design pattern)一词来指所有直接处理软件的架构、设计、程序实现的任何种类的模式。 另外一些人则强调要划分三种不同层次的模式:架构模式(architectural pattern)、设计模式(design pattern)、成例(idiom)。成例有时称为代码模式(coding pattern)。

这三者之间的区别在于三种不同的模式存在于它们各自的抽象层次和具体层次上。架构模式是一个系统的高层次策略,涉及到大尺度的组件以及整体性质和力学。架构模式的好坏可以影响到总体布局和框架性结构。设计模式是中等尺度的结构策略。这些中等尺度的结构实现了一些大尺度组件的行为和它们之间的关系。模式的好坏不会影响到系统的总体布局和总体框架。设计模式定义出子系统或组件的微观结构。代码模式(或成例)是特定的范例和与特定语言有关的编程技巧。代码模式的好坏会影响到一个中等尺度组件的内部、外部的结构或行为的底层细节,但不会影响到一个部件或子系统的中等尺度的结构,更不会影响到系统的总体布局和大尺度框架

代码模式或成例(coding pattern 或 idiom)

代码模式(或成例)是较低层次的模式,并与编程语言密切相关。代码模式描述怎样利用一个特定的编程语言的特点来实现一个组件的某些特定的方面或关系。

较为著名的代码模式的例子包括双检锁(double-check locking)模式等。

设计模式(design pattern)

一个设计模式提供一种提炼子系统或软件系统中的组件的,或者它们之间的关系的纲要设计。设计模式描述普遍存在的在相互通讯的组件中重复出现的结构,这种结构解决在一定的背景中的具有一般性的设计问题。

设计模式常常划分成不同的种类,常见的种类有:

创建型设计模式,如工厂方法(factory method)模式、抽象工厂(abstract factory)模式、原型(prototype)模式、单例(singleton)模式,建造(builder)模式

结构型设计模式,如合成(composite)模式、装饰(decorator)模式、代理(proxy)模式、享元(flyweight)模式、门面(facade)模式、桥梁(bridge)模式

行为型模式,如模版方法(template method)模式、观察者(observer)模式、迭代子(iterator)模式、责任链(chain of responsibility)模式、备忘录(memento)模式、命令(command)模式、状态(state)模式、访问者(visitor)模式等等。

以上是三种经典类型,实际上还有很多其他的类型,比如fundamental型、partition型,relation型等等

设计模式在特定的编程语言中实现的时候,常常会用到代码模式。比如单例(singleton)模式的实现常常涉及到双检锁(double-check locking)模式等。

架构模式(architectural pattern)

一个架构模式描述软件系统里的基本的结构组织或纲要。架构模式提供一些事先定义好的子系统,指定它们的责任,并给出把它们组织在一起的法则和指南。有些作者把这种架构模式叫做系统模式[stelting02]。

一个架构模式常常可以分解成很多个设计模式的联合使用。显然,mvc模式就是属于这一种模式。mvc模式常常包括调停者(mediator)模式、策略(strategy)模式、合成(composite)模式、观察者(observer)模式等。

此外,常见的架构模式还有:

·layers(分层)模式,有时也称tiers模式

·blackboard(黑板)模式

·broker(中介)模式

·distributed process(分散过程)模式

·microkernel(微核)模式

架构模式常常划分成如下的几种:

一、 from mud to structure型。帮助架构师将系统合理划分,避免形成一个对象的海洋(a sea of objects)。包括layers(分层)模式、blackboard(黑板)模式、pipes/filters(管道/过滤器)模式等。

二、分散系统(distributed systems)型。为分散式系统提供完整的架构设计,包括像broker(中介)模式等。

三、人机互动(interactive systems)型,支持包含有人机互动介面的系统的架构设计,例子包括mvc(model-view-controller)模式、pac(presentation-abstraction-control)模式等。

四、adaptable systems型,支持应用系统适应技术的变化、软件功能需求的变化。如reflection(反射)模式、microkernel(微核)模式等。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons