族谱网 头条 人物百科

设计模式

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:485
转发:0
评论:0
发展历史建筑师克里斯托佛·亚历山大在1977/79年编制了一本汇集设计模式的书,但是这种设计模式的思想在建筑设计领域里的影响远没有后来在软件开发领域里传播的广泛。肯特·贝克和沃德·坎宁安在1987年,利用克里斯托佛·亚历山大在建筑设计领域里的思想开发了设计模式并把此思想应用在Smalltalk中的图形用户接口(GUI)的生成中。一年后埃里希·伽玛在他的苏黎世大学博士毕业论文中开始尝试把这种思想改写为适用于软件开发。与此同时JamesCoplien在1989年至1991年也在利用相同的思想致力于C++的开发,而后于1991年发表了他的著作AdvancedC++ProgrammingStylesandIdioms。同年ErichGamma得到了博士学位,然后去了美国,在那与RichardHelm,RalphJohnson,JohnVlissides合作出版了《设计模式:可复用面向对象软件的基础...

发展历史

建筑师克里斯托佛·亚历山大在1977/79年编制了一本汇集 设计模式 的书,但是这种设计模式的思想在建筑设计领域里的影响远没有后来在软件开发领域里传播的广泛。

肯特·贝克和沃德·坎宁安在1987年,利用克里斯托佛·亚历山大在建筑设计领域里的思想开发了 设计模式 并把此思想应用在Smalltalk中的图形用户接口(GUI)的生成中。一年后埃里希·伽玛在他的苏黎世大学博士毕业论文中开始尝试把这种思想改写为适用于软件开发。与此同时James Coplien 在1989年至1991年也在利用相同的思想致力于C++的开发,而后于1991年发表了他的著作 Advanced C++ Programming Styles and Idioms 。同年Erich Gamma 得到了博士学位,然后去了美国,在那与Richard Helm, Ralph Johnson ,John Vlissides 合作出版了《设计模式:可复用面向对象软件的基础》( Design Patterns - Elements of Reusable Object-Oriented Software ) 一书,在此书中共收录了23个 设计模式 。

这四位作者在软件开发领域里以“”(英语,Gang of Four,简称GoF)而闻名,并且他们在此书中的协作导致了软件设计模式的突破。有时,GoF也会用于代指《设计模式》这本书。

表述格式

表述一个软件设计模式的格式根据作者的不同,划分和名称等都会有所不同。常用的GoF描述模式的格式大致分为以下这些部分:

模式名:每一个模式都有自己的名字,模式的名字使得我们可以讨论我们的设计。

问题:在面向对象的系统设计过程中反复出现的特定场合,它导致我们采用某个模式。

解决方案:上述问题的解决方案,其内容给出了设计的各个组成部分,它们之间的关系、职责划分和协作方式。

别名:一个模式可以有超过一个以上的名称。这些名称应该要在这一节注明。

动机:在哪种情况使用该模式,是本节提供的方案(包括问题与来龙去脉)的责任。

适用性:模式适用于哪些情况、模式的背景等等。

结构:这部分常用类图与交互图阐述此模式。

参与者:这部分提供一份本模式用到的类与对象清单,与它们在设计下扮演的角色。

合作:描述在此模式下,类与对象间的交互。

影响:采用该模式对软件系统其他部分的影响,比如对系统的扩充性、可移植性的影响。影响也包括负面的影响。这部分应描述使用本模式后的结果、副作用、与权衡(trade-off)

实现:这部分应描述实现该模式、该模式的部分方案、实现该模式的可能技术、或者建议实现模式的方法。

示例:简略描绘出如何以编程语言来使用模式。

已知应用:业界已知的实现示例。

相关模式:这部分包括其他相关模式,以及与其他类似模式的不同。

分类

《设计模式》一书原先把设计模式分为创建型模式、结构型模式、行为型模式,把它们通过授权、聚合、诊断的概念来描述。若想更进一步了解关于面向对象设计的背景,参考接口模式、内聚。若想更进一步了解关于面向对象编程的背景,参考继承,接口,多态。

参阅

设计范例

反模式,对某个问题经常出现的、在设计中应该尽量避免的、坏的设计方案。

模式挖掘

软件重构

程序设计实践

参考资料

Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides: Design Patterns , Addison-Wesley, 1995, hardcover, 395 pages, ISBN 978-0-201-63361-0, Design Patterns CD , 1997 ISBN 978-0-201-63498-3

Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal: Pattern-oriented Software Architecture, Volume 1: A System of Patterns , John Wiley & Sons Ltd., ISBN 978-0-471-95869-7

Douglas Schmidt: Pattern-oriented Software Architecture. Volume 2: Patterns for Concurrent and Networked Objects , John Wiley & Sons Ltd., ISBN 978-0-471-60695-6

Alan Shalloway, James R. Trott: Design Patterns Explained: A New Perspective on Object-Oriented Design , Addison-Wesley, ISBN 978-0-201-71594-1

Martin Fowler: Patterns of Enterprise Application Architecture , Addison-Wesley, ISBN 978-0-321-12742-6

设计模式列表.

mgrand的书介绍了许多模式

hillside.net模式目录

设计模式会通

设计模式工具箱

C#面向对象设计模式纵横谈系列课程


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 设计模式
发展历史建筑师克里斯托佛·亚历山大在1977/79年编制了一本汇集设计模式的书,但是这种设计模式的思想在建筑设计领域里的影响远没有后来在软件开发领域里传播的广泛。肯特·贝克和沃德·坎宁安在1987年,利用克里斯托佛·亚历山大在建筑设计领域里的思想开发了设计模式并把此思想应用在Smalltalk中的图形用户接口(GUI)的生成中。一年后埃里希·伽玛在他的苏黎世大学博士毕业论文中开始尝试把这种思想改写为适用于软件开发。与此同时JamesCoplien在1989年至1991年也在利用相同的思想致力于C++的开发,而后于1991年发表了他的著作AdvancedC++ProgrammingStylesandIdioms。同年ErichGamma得到了博士学位,然后去了美国,在那与RichardHelm,RalphJohnson,JohnVlissides合作出版了《设计模式:可复用面向对象软件的基础...
· 谈养老旅游地产规划设计15种模式
12月23日,商务部新闻发言人沈丹阳就中美商贸联委会成果等若干经贸热点接受媒体联合采访表示,将合理引导外资投向养老地产、旅游地产、教育地产等新兴业态。期间,就外资房地产开发商正在加大对华投资力度的现象问题,沈丹阳回应,今年以来外商投资房地产业总体呈现上升趋势,但外资在全国房地产开发总投资的比重仍保持在较低水平,外商投资房地产在全国房地产市场的份额也没有发生明显变化。明年,商务部在按照现有政策继续合理引导外资在房地产领域投资的同时,将会同有关部门针对市场现的新问题、新情况,采取有针对性措施,防范投机性投资,加强对跨境投融资活动的监控,规范房地产领域的投资,合理引导外资投向养老地产、旅游地产、教育地产等新兴业态。“与此同时,商务部将指导和要求地方商务主管部门密切关注外资商业地产投资及并购已建物业项目,研究外资投向物流地产和工业地产的发展趋势和影响,进一步加强对外资进入房地产市场风险的防范。”据...
· 设计模式:可复用面向对象软件的基础
创建范例创建范例全部是关于如何创建实例的。这组范例可以被划分为两组:类创建范例及对象创建范例。类创建实例在实例化过程中有效的使用类之间的继承关系,对象创建范例则使用代理来完成其任务。抽象工厂(AbstactFactory)构造器(BuilderPattern)工厂方法(FactoryMethodpattern)原型(Prototypepattern)单例模式(Singletonpattern)结构范例这组范例都是关于类及对象复合关系的。适配器(Adapterpattern)桥接(Bridgepattern)组合(Compositepattern)装饰(Decoratorpattern)外观(Façadepattern)享元(Flyweightpattern)代理(Proxypattern)行为范例这组范例都是关于对象之间如何通讯的。职责链(Chain-of-responsibilitypa...
· 模式生物
相关条目Ensembl-模式生物基因组数据库模式种动物试验基因组计划
· 模式种
植物分类学里的模式种定义模式种一般来说是指:当为一个属被命名时,需要指定一个种作为成立此属的依据,此被指定的种即称为此属的模式种。任一属或属的次分类阶层的学名之模式,来自种名,也就是种名在属的命名时被认为等同此种的模式标本。原则处理植物命名时,与模式相关的法规乃依据国际植物命名法规,当中原则二规定:“借由命名模式来给定植物分类群名称。”由此原则衍生的相关问题在国际植物命名法规所有界定、讨论者,泛称为模式法。例如:早田兰属(HayataAver.)2009年,LeonidV.Averyanov北越的采集发现新种兰科植物裂唇早田兰(HayataglanduliferaAver.),拟新增新的属名,Hayata。Averyanov指定以早田文藏所发表的植物东部线柱兰(Hayatatabiyahanensis)为本属的模式种,并以Hayata命名,以纪念早田文藏。参见正模标本副模标本模式生物参考文...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信