设计模式概述

在这里插入图片描述
软件设计模式的产生背景
“设计模式”这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中。

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),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。其目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。

  1. 学习设计模式的意义

设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。正确使用设计模式具有以下优点。

可以提高程序员的思维能力、编程能力和设计能力。
使程序设计更加标准化、代码编制更加工程化,使软件开发效率大大提高,从而缩短软件的开发周期。
使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强。

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

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
+mOCIRIednE+AyXnWkht1A==

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值