设计模式是什么
设计模式是软件设计中常见问题的典型解决方案,每一个设计模式就像一张蓝图,可以通过它进行定制来解决代码中反复出现的问题。
设计模式与方法和库的使用方式不同,很难直接在自己的程序中套用某一个设计模式,模式也不是一段特定的代码,而且是解决特定问题的一般性概念。可以根据模式来实现符合自己程序实际所需的解决方案。
模式包含哪些内容
大部分模式都有正规的描述方式,便于在不同的情况下使用,模式的描述包括以下部分:
-
意图部分简单描述问题和解决方案
-
动机部分将进一步解释问题并说明模式会如何提供解决方案。
-
结构部分展示模式的每一个部分和它们之间的关系。
-
在不同语言中的实现 提供流行编程语言的代码,让读者更好理解模式背后的思想。
为什么以及如何学习设计模式
设计模式是针对软件设计中常见的问题工具箱,其中的工具就是各种经过实践验证的解决方案,即使从未遇到过这些问题,了解模式依然非常有用,它可以指引你如何使用面向对象的设计原则来解决问题。
设计模式定义了一种让你和成员能够高效沟通的语言,你只需要说一声“这里用单例就可以了”,所有人都会理解这个建议背后的想法,也就是只需要知道模式名称,就无须解释原因。
设计模式分类
不同设计模式复杂程度、细节层次、以及在整个系统的应用范围方面各不相同。
最基础的、最底层的通常被称为惯用技巧,这类模式一般只能在一种语言中使用。
最通用的高层的模式是构架模式,开发者可以在任何语言中使用这类模式,与其他模式不同,他可以用于整个程序的架构设计。
所有模式根据其意图或者目的来分类,主要的类别是:
-
创建型模式 提供创建对象的机制,增加已有代码的灵活性和可服用性。
-
结构型模式 介绍如何将对象和类组装成较大的结构,并同时保持结构的灵活和高效。
-
行为模式 负责对象间的高效沟通和职责委派。
设计模式目录
创建型模式
-
工厂方法
-
抽象工厂
-
生成器
-
原型
-
单例
结构型模式
-
适配器
-
桥接
-
组合
-
装饰
-
外观
-
享元
-
代理
行为模式
-
责任链
-
命令
-
迭代器
-
中介者
-
备忘录
-
观察者
-
状态
-
策略
-
模版方法
-
访问者