为什么会有设计模式?
设计模式的由来
软件工程是最近几十年才逐渐兴起的一门学科,而建筑工程领域已经拥有几千年的沉淀历史,相对于软件工程来说,这个传承了几千年的大咖还是有太多值得软件工程去学习和借鉴的地方。 今天我们要介绍的主角设计模式,就是借鉴了建筑领域中模式的思想发展而来的。
美国的一个建筑大咖, 给出了关于建筑模式的定义: 即 **每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的成功的解决方案,无须再重复相同的工作。**简单来说, 模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。
最早将模式的思想引入软件工程方法学的是1991-1992年以“四人组”自称的四位著名软件工程学者,他们在1994年归纳发表了23种在软件开发中使用频率较高的设计模式,旨在用模式来统一沟通面向对象方法在分析、设计和实现间的鸿沟。
GoF将模式的概念引入软件工程领域,这标志着软件模式的诞生。软件模式(Software Patterns)是将模式的一般概念应用于软件开发领域,即软件开发的总体指导思路或参照样板。软件模式并非仅限于设计模式,还包括架构模式、分析模式和过程模式等,实际上,在软件开发生命周期的每一个阶段都存在着一些被认同的模式。 软件模式是在软件开发中某些可重现问题的一些有效解决方法,软件模式的基础结构主要由四部分构成,包括问题描述【待解决的问题是什么】、前提条件【在何种环境或约束条件下使用】、解法【如何解决】和效果【有哪些优缺点】,软件设计模式的时代由此打开。
而且注意一点,软件模式与具体的应用领域无关,也就是说无论你从事的是移动应用开发、桌面应用开发、Web应用开发还是嵌入式软件的开发,都可以使用软件模式,作为21世纪的代码搬砖者,你如果不了解设计模式,那你是真的只能当个底层的代码搬运工了。