我爱设计模式

我爱设计模式 http://www.yesban.com/group/10007.html    组长:wenwen | 副组长:

系统设计、设计模式、MVC以及系统架构之类的内容。整理关于设计模式、架构类的文章.

设计模式

2007-11-24 17:06:33
设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。

GoF(Gang of Four,指《设计模式-可复用面向对象软件的基础》的四位作者:Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides)的“设计模式”是第一次将设计模式提升到理论高度,并将之规范化,本书提出了23种基本设计模式,自此,在可复用面向对象软件的发展过程中,新的大量的设计模式不断出现。

设计模式和框架

现在,可复用面向对象软件系统现在一般划分为三大类:应用程序 工具箱和框架(Framework),我们平时开发的具体软件都是应用程序;Java的API属于工具箱;而框架是构成一类特定软件可复用设计的一组相互协作的类。EJB(Enterprise JavaBeans)是Java应用于企业计算的框架.

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

另外,设计模式有助于对框架结构的理解,成熟的框架通常使用了多种设计模式,如果你熟悉这些设计模式,毫无疑问,你将迅速掌握框架的结构,我们一般开发者如果突然接触EJB J2EE等框架,会觉得特别难学,难掌握,那么转而先掌握设计模式,无疑是给了你剖析EJB或J2EE系统的一把利器

一个模式的四个基本要素

      设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。


1. 模式名称(pattern name)

      一个助记名,它用一两个词来描述模式的问题、解决方案和效果。命名一个新的模式增加了我们的设计词汇。设计模式允许我们在较高的抽象层次上进行设计。基于一个模式词汇表,我们自己以及同事之间就可以讨论模式并在编写文档时使用它们。模式名可以帮助我们思考,便于我们与其他人交流设计思想及设计结果。找到恰当的模式名也是我们设计模式编目工作的难点之一。

2. 问题(problem)

      描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描述了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。

3. 解决方案(solution)

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

4. 效果(consequences)

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

四种设计模式的作用:

外观(Facade):为了系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用;

装饰(Decorate):当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能;

单件(Singleton):保证一个类仅有一个实例,并提供一个访问他的全局访问点;

模板方法(Template Method):在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现。

事实不再

回复:设计模式

2007-12-9 18:13:41 1
这里可以了
游客可以匿名发贴,注册登录后发帖将能享受会员服务和积分奖品。如果你已经是注册用户,请登录

回复主题:

标题:
内容:
ctrl+enter立即回复
易办猜你对这些信息感兴趣
易办猜你对这些群组感兴趣

魔兽大世界我们用魔兽来交朋友,用经验和趣闻一起娱...

时事直击将你身边值得宣扬的事,愤慨不已的事,好...

周公组团梦是一种奇异的现象,而做梦的经验,也是...

中国中国

我爱设计模式系统设计、设计模式、MVC以及系统架构...

最新的群组

运城之家实现资源共享,同心协力解决生活中困难!

珠海交换不管是技能还是物品,大家换换吧!

康富家园21世纪人们追求和向往的生活:健康、美...

大家都在做什么
关于易办 | 联系我们 | 网站地图 | 版权说明 | 合作推广 | 易办招聘 | 友情链接 | 媒体报道 | 网站建设 | 标签TAG |
Copyright 2007, 版权所有 易办技能交换网
易办网法律顾问:章胜华 13316120428