软件设计模式系列之一 什么是设计模式(一)

什么是模式?

       从字面上理解,模,就是模版、模型的意思;式,就是方式、方法的意思。综合起来说,所谓的模式就是:可以作为模版或模型的方式和方法。

Christopher Alexander 说过:

“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”

模式还必须得做到以下几点:

◎ 解决一个问题:从模式可以得到解,而不仅仅是抽象的原则或策略。

◎ 是一个被证明了的概念:模式通过—个记录得到解.而不是通过理论或推测。

◎ 解并不是显然的:许多解决问题的方法(例如软件设计范例或方法)是从最基本的原理得到解;而最好的方法是以非直接的方式得到解,对大多数比较困难的设计问题来说,这是必要的。

◎ 描述了一种关系:模式并不仅仅描述模块,它给出更深层的系统结构和机理。

◎ 模式有重要的人为因素:所有的软件服务于人类的舒适或生活质量,而最好的模式追求它的实用性和美学。 

 

什么是设计模式?

 百度百科上这样解释设计模式:设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。

我觉得,《研磨设计模式》这本书里面说的定义可能更好些。

1. 设计模式是解决方案

所谓的解决方案,就是解决方法,亦即是解决问题的方式和方法。

2. 设计模式是特定问题的解决方案

为什么要限制设计模式是“特定问题”的解决方案呢?

限制“特定问题”,说明设计模式不是什么万能灵药或者万金油,并不是什么问题都能解决,通常一个设计模式仅仅解决某些特定的问题,并不能包治百病。

3. 设计模式是重复出现、特定问题的解决方案

那么为何要这些问题是“重复出现”的呢?

只有这些特定问题“重复出现”,那么为这些问题总结解决方案才是有意义的行为。因为只有总结 了这些问题的解决方案,当这些问题再次出现的时候,就可以重复这些解决方案,而不用从头来寻找解决方法。

4. 设计模式是用于解决在特定环境下、重复出现的、特定问题的解决方案

为什么要限制在“特定环境下”呢?

任何问题的出现都是有场景的,不能脱离环境去讨论对问题的解决方案,因为在不同的环境下,就是相同的问题,解决方法也不一定是一样的。

5. 设计模式是经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案

为什么要限制是“经过验证的”呢?

每个人都可以总结出一些用于解决在特定环境下、重复出现的、特定问题的解决方案,但并不是每个人总结的解决方案都算的上是设计模式,这些解决方案应该要有足够的应用来验证,并得到大家的认可和公认。只有经过验证的解决方案才算的上是设计模式。

6. 设计模式是指软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案

为何要强调是“在软件开发中”呢?

原因其实很简单,因为我们所讨论的设计模式是软件开发中的设计模式。

所以说,设计模式可以这样定义:

设计模式是指在软件开发中经过验证的用于解决在特定环境重复出现特定问题解决方案

你可能感兴趣的:(软件设计模式系列之一 什么是设计模式(一))