现在的位置: 首页 > 综合 > 正文

什么是设计模式?什么是框架?

2013年10月18日 ⁄ 综合 ⁄ 共 2507字 ⁄ 字号 评论关闭

什么是设计模式?

在生活和工作当中的各个方面,不断地重复一些事物和事情的方法,可以看作是一种设计模式,例如:

小王家的茶几和小李家的茶几很像,但小王家的茶几用门代替了抽屉。

张三家的花园和李四家的花园很像,但李四家的花园种的是菊花。

   那么在程序设计中也会有同样的事情,例如,开发一个程序可以通过很多技巧来完成程序功能。

程序设计模式没有一个统一的定义,它是开发者在开发中不断积累、总结的一种可复制的方案,下面是该方面几位专家给出的理解:

l          设计模式是对程序设计人员经常遇到的设计问题的可再现的解决方案(The Smalltalk Companion)。

 

什么是框架?

框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。
为什么要用框架?

因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。

框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。

软件为什么要分层?

为了实现“高内聚、低耦合”。把问题划分开来各个解决,易于控制,易于延展,易于分配资源…总之好处很多啦:)。

l          设计模式建立了一系列描述如何完成软件开发领域中的特定任务的规则(Pree 1995)。

l          设计模式更关注与复用可重复出现的结构设计方案,而框架注重于具体设计和实现(Coplien and Schmidt 1995)。

l          设计模式提出了一个发生在特定设计环境中的可重复出现的设计问题,并提供解决方案(Buschmann et al.1996)。

l          设计模式识别并确定类和实例层次上或组件层次上的抽象关系(GammaJohnsonand Vlissides1993)。     总之,设计模式在设计者中是一种流行的思考设计问题的方法,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了使代码具有可重用性、让代码更容易被他
人理解和保证代码可靠性。设计模式使代码编制为工程化,设计模式是软件工程的基石,像高楼的一块块砖。


设计模式与架构的关系

    现在,使用面向对象软件系统一般划分为三大类:应用程序、工具箱和框架Framework),
应用程序是指开发工具,
Visual Studio 2005Visual Basicdelphi
等;工具箱是开发程序时使用的工具,如服务器控件、
控件、组件等;而框架是构成一类特定软件可复用设计的一组相互协作的类库,如
. net Framework

    框架通常定义了应用体系的整体结构、类和对象的关系等设计参数,以便于具体应用实现者能集中
精力于应用本身的特定细节。框架主要记录软件应用中共同的设计决策,框架要求设计重复使用,
因此框架设计中必然要使用设计模式。

另外,设计模式有助于对框架结构的理解,成熟的框架通常使用了多种设计模式,
如果程序人员熟悉这些设计模式,毫无疑问,将迅速掌握框架的结构,一般开发者如果突然接触框架,
会觉得特别难学、难掌握,那么先掌握设计模式,无疑是剖析框架的基础。


为什么要使用设计模式

   敏捷开发人员不会对一个预先设计应用原则和模式。相反,这些原则和模式被应用在一次次的迭代中,
力图使代码设计流畅。

为什么使用设计模式,笔者的体会如下:

l          设计模式是为了使设计适应变化;

 

l          设计模式是重构的工具;

 

l          设计一开始就要保持流畅、简单,并具有持续性;

 

l          不能过度使用设计模式。

 

    使用设计模式的目的是为了适应未来的变化,变化之所以存在是因为一切的事物都具有不可预见性,
如果具有可预见性,则不能称其为变化。如何判断哪些需求可能变化,哪些需求可能不变,
并且在最大程度上保持设计的流畅、简单,这些是工艺问题,而不是工程问题。既然是工艺问题,
那么就只能给出原则,不能给出标准。使用设计模式的原则是:对未来极有可能发生变化的问题进行简单的修改
、降低成本。

设计模式基本要素

 

   设计模式使人们可以更加简单方便地复用成功的设计和体系结构,将已证实的技术表述成设计模式也会使新加入的系统开发者更加容易理解其设计思路。设计模式的基本要素为模式名称、问题、解决方案和效果。

  (1)模式名称

  一个助记名称,用来描述设计模式、解决方案和效果。设计模式允许在较高的抽象层次上进行设计。
基于一个模式词汇表,开发团队之间可以讨论模式并在编写文档时使用它们。模式名称可以帮助我们思考,
便于团队成员交流设计思想及设计结果。找到合适的模式名称也是设计模式编目工作的难点之一。

  (2)问题

  问题主要描述在何时使用设计模式。它解释了设计问题和问题存在的前因后果、特定的设计问题和怎样
用对象表示算法等。通常情况下,模式必须满足的一系列先决条件是问题。

  (3)解决方案

  解决方案描述了设计的组成成分、它们之间的相互关系及各自的职责和协作方式。因为模式就像一个模板,
可应用于多种不同场合,所以解决方案并不描述一个特定具体的设计或实现,
而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。

  (4)效果

  描述了模式应用的效果及使用模式权衡的问题。尽管描述设计决策时,并不是总提到模式效果
,但它们对于评价设计选择和理解使用模式的代价及优势具有重要意义。
软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现问题。
因为复用是面向对象设计的要素之一,所以模式效果包括它对系统灵活性、
扩充性或可移植性的影响,显式地列出这些效果对理解和评价这些模式很有帮助。

抱歉!评论已关闭.