设计模式简介

在这里插入图片描述“设计模式”这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中。
1977 年,美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造(A Pattern Language: Towns Building Construction)中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行设计的基本模式。1979 年他的另一部经典著作《建筑的永恒之道》(The Timeless Way of Building)进一步强化了设计模式的思想,为后来的建筑设计指明了方向。1987 年,肯特·贝克(Kent Beck)和沃德·坎宁安(Ward Cunningham)首先将克里斯托夫·亚历山大的模式思想应用在 Smalltalk 中的图形用户接口的生成中,但没有引起软件界的关注。直到 1990 年,软件工程界才开始研讨设计模式的话题,后来召开了多次关于设计模式的研讨会。1995 年,艾瑞克·伽马(ErichGamma)、理査德·海尔姆(Richard Helm)、拉尔夫·约翰森(Ralph Johnson)、约翰·威利斯迪斯(John Vlissides)等 4 位作者合作出版了《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)一书,在本教程中收录了 23 个设计模式,这是设计模式领域里程碑的事件,导致了软件设计模式的突破。这 4 位作者在软件开发领域里也以他们的“四人组”(Gang of Four,GoF)匿名著称。直到今天,狭义的设计模式还是本教程中所介绍的 23 种经典设计模式。软件设计模式的概念与意义有关软件设计模式的定义很多,有些从模式的特点来说明,有些从模式的作用来说明。本教程给出的定义是大多数学者公认的,从以下两个方面来说明。1. 软件设计模式的概念软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。2. 学习设计模式的意义设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。正确使用设计模式具有以下优点。可以提高程序员的思维能力、编程能力和设计能力。使程序设计更加标准化、代码编制更加工程化,使软件开发效率大大提高,从而缩短软件的开发周期。使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强。当然,软件设计模式只是一个引导。在具体的软件幵发中,必须根据

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

设计的应用系统的特点和要求来恰当选择。对于简单的程序开发,苛能写一个简单的算法要比引入某种设计模式更加容易。但对大项目的开发或者框架设计,用设计模式来组织代码显然更好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值