设计模式入门
什么是设计模式
设计模式(Design pattern) 是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。我的理解就是一个设计模式就是一个公式,或者说一个套路,用来解决某一类问题。
谁创建了设计模式
设计模式最初是被 Christopher Alexander 提出的,他在他的著作《建筑模式语言》中提出了设计模式的雏形。他说过:“每个模式都描述了一个在我们的环境中不断出现的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。”
后来,在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人(这四人也被称为GOF,Gang of Four,四人帮)合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 的书(我对设计模式的学习以这本书为主),该书首次提到了软件开发中设计模式的概念。他们提出的设计模式主要基于以下面向对象设计原则:
- 对接口编程而不是对实现编程。
- 优先使用对象组合而不是继承。
设计模式的类型
在《设计模式 - 可复用的面向对象软件元素》这本书中,一共介绍了23种设计模式。这23种设计模式可以分为三大类:
创建型模式(Cration Patterns)、结构型模式(Structural Patterns) 和 行为型模式(Behavioral Patterns)。下表来自菜鸟教程。
| 序号 | 模式 & 描述 | 包括 |
|---|---|---|
| 1 | 创建型模式 这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 |
|
| 2 | 结构型模式 这些模式关注对象之间的组合和关系,旨在解决如何构建灵活且可复用的类和对象结构。 |
|
| 3 | 行为型模式 这些模式关注对象之间的通信和交互,旨在解决对象之间的责任分配和算法的封装。 |
|
| 4 | J2EE 模式 这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的。 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 第N号垃圾桶!
