为什么会有设计模式?
Why?
在早期软件编程过程中,人们发现不同场景中某一类问题经常性的、重复性的出现,为了解决这些问题,人们引进建筑领域的设计思想从而发现了一系列行之有效的解决方案。
定义
(软件工程领域)为了解决具体环境中所遇到的某一类重复出现的问题而创建的一套成功或有效的解决方案 (最早是借鉴了建筑工程领域的模式设计思想)
(建造工程领域)一位建筑大咖给出了建筑模式的定义: 每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的成功的解决方案,无须再重复相同的工作。
历程
最早将模式思想引入软件工程学的是GOF(四人帮,全拼 Gang of Four),Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 的书,该书首次提到了软件开发中设计模式的概念,将软件设计模式应用于软件开发领域作为软件开发的指导模版。
软件设计模式不仅仅只是设计模式,还包括架构模式、分析模式和过程模式等各种解决方案。
软件模式与具体的应用领域无关,无论你从事的是移动应用开发、桌面应用开发、Web应用开发还是嵌入式软件的开发,都可以使用软件模式。
总结
设计模式是具体环境下某一类问题一套行之有效的解决方案,是一套理论,它不是具体的代码,是看不见摸不着的,只能具体情况具体讨论,这就好比在进行程序设计时,我们先讨论的是整体架构、整体轮廓而不是具体实现细节一样。
借鉴:为什么会有设计模式?