软件设计模式18593

软件设计模式18593

ID:36237495

大小:35.00 KB

页数:3页

时间:2019-05-07

软件设计模式18593_第1页
软件设计模式18593_第2页
软件设计模式18593_第3页
资源描述:

《软件设计模式18593》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、设计模式(英语designpattern)是对面向对象设计中反复出现的问题的解决方案。这个术语是在1990年代由ErichGamma等人从建筑设计领域引入到计算机科学中来的。这个术语的含义目前还存有争议。算法不是设计模式,因为算法致力于解决问题而非设计问题。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。  随着软件开发社群对设计模式的兴趣日益增长,已经出版了一些相关的专著,定期召开相应的研讨会,而

2、且WardCunningham为此发明了WikiWiki用来交流设计模式的经验。  建筑学  建筑师克里斯托佛·亚历山大在1970年代编制了一本汇集设计模式的书。但是这种设计模式的思想在建筑设计领域里的影响远没有后来在软件开发领域里传播的广泛。  历史  肯特·贝克和沃德·坎宁安在1987年利用克里斯托佛·亚历山大在建筑设计领域里的思想开发了设计模式并把此思想应用在Smalltalk中的图形用户接口的生成中。一年后ErichGamma在他的苏黎世大学博士毕业论文中开始尝试把这种思想改写为适用于软件开发。于此同时James

3、Coplien在1989年至1991年也在利用相同的思想致力于C++的开发,而后于1991年发表了他的著作AdvancedC++Idioms。就在这一年ErichGamma得到了博士学位,然后去了美国,在那与RichardHelm,RalphJohnson,JohnVlissides合作出版了DesignPatterns-ElementsofReusableObject-OrientedSoftware一书,在此书中共收录了23个设计模式。这四位作者在软件开发领域里也以他们的匿名著称GangofFour(四人帮,简称Go

4、F),并且是他们在此书中的协作导致了软件设计模式的突破。有时这个匿名GoF也会用于指代前面提到的那本书。  模式的格式  尽管名称和顺序在不同的资料中各有不同,描述模式的格式大致分为以下四个主要部分:  模式名称(PatternName):每一个模式都有自己的名字,模式的名字使得我们可以讨论我们的设计。  问题(Problem):在面向对象的系统设计过程中反复出现的特定场合,它导致我们采用某个模式。  解决方案(Solution):上述问题的解决方案,其内容给出了设计的各个组成部分,它们之间的关系、职责划分和协作方式。 

5、 效果(Consequence):采用该模式对软件系统其他部分的影响,比如对系统的扩充性、可移植性的影响。影响也包括负面的影响。  别名(AlsoKnownAs):一个模式可以有超过一个以上的名称。这些名称应该要在这一节註明。  动机(Motivation):该模式应该利用在哪种情况下是本节提供的方案(包括问题与来龙去脉)的责任。  应用(Applicability)  结构(Structure):这部分常用类图与互动图阐述此模式。  参与者(Participants):这部分提供一份本模式用到的类与物件清单,与它们在设

6、计下扮演的脚色。  合作(Collaboration):描述在此模式下,类与物件间的互动。  结果(Consequences):这部分应描述使用本模式後的结果、副作用、与交换(trade-off)  实现(Implementaion):这部分应描述实现该模式、该模式的部分方案、实现该模式的可能技术、或者建议实现模式的方法。  例程(SampleCode):示范程式。  已知应用(KnownUses):业界已知的实做范例。  相关模式(RelatedPatterns):这部分包括其他相关模式,以及与其他类似模式的不同。  

7、相近的术语  对某个问题经常出现的、在设计中应该尽量避免的、坏的设计方案被称为反模式。  设计模式列表  基础模式  委托模式  接口模式  代理模式  创建型模式  抽象工厂模式(AbstractFactory)  生成器模式(Builder)  工厂方法模式(FactoryMethord)  原型模式(Prototype)  单例模式(Singleton)  结构型模式  适配器模式(Adapter)  桥接模式(Bridge)  组合模式(Composite)  容器模式  修饰模式(Decorator)  扩展性

8、模式  外观模式  享元模式  管道与过滤器模式  代理模式(Proxy)  行为模式  责任链模式(ChainofResponsibility)  命令模式(Command)  柯里化模式  事件监听器模式  解释器模式  迭代器模式  中介者模式  备忘录模式(Memento)  观察者模式(Observer) 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。