软件开发中的设计模式
学习设计模式
如果您曾经使用过企业级软件或任何遗留软件,那么您一定知道存在一种特定的编程模式(设计模式)来解决特定问题。如果您刚刚开始软件职业生涯,那么可以肯定的是,在不久的将来,或者在您职业生涯的任何阶段,您都会接触到至少一种软件设计模式。
由于设计模式在软件开发中至关重要,我非常希望能够将我的设计模式知识传播给尽可能多的人。在本文中,我们将探讨什么是设计模式以及如何研究设计模式。
什么是设计模式?
如果你还没听说过“设计模式”,那么你可能会觉得有点儿吓人,但这其实只是理解一些非常基础概念的过程。现在,我们来谈谈这个话题:四位软件工程师坐在一起,观察了解决常见问题的常用方法,并以一种非常有效的方式记录下来,并称之为“设计模式”。
现在又有一个问题,那四位软件工程师怎么样,我们也来回答这个问题。
- 埃里希·伽马
- 约翰·弗利斯赛德斯
- 拉尔夫·约翰逊
- Richard Helm 上述人员被称为“四人帮”,他们负责编写《设计模式:可复用面向对象软件的要素》一书
设计模式的目的
设计模式在面向对象软件设计中扮演着非常重要的角色。企业应用程序的每个层级都有某种设计模式的实现。设计模式有助于创建更易于处理且更易于复用的代码。
为什么需要设计模式?
- 针对任何问题使用特定设计模式可以改善项目的整体文档和设计。
- 使用设计模式可以帮助构建有效的软件,并将可用性提高很多倍。
设计模式的组成部分
- 名称:设计模式的名称包含问题及其解决方案。
- 问题:特定的设计模式将解决什么样的问题。
- 解决方案:具体问题的解决方案是什么。
- 后果:在空间和时间复杂性等方面会产生什么后果。
设计模式的主要类别
存在以下类型的设计模式:
- 创造型
- 结构
- 行为
课程介绍
我们知道设计模式中存在哪些类型的类,所以让我们对每个类进行简要介绍。
创造型
创建型设计模式是指控制指定对象或类的创建。
结构
结构设计模式是指创建类或接口的非常具体的结构。
行为
行为设计模式是指控制类、对象或接口的行为。
学习设计模式
学习设计模式不仅仅是编写代码,它还包含对类图的理解,以及理解各个类或接口之间的联系。
可以从《可重用面向对象软件的设计模式元素》一书中非常有效地学习设计模式。
我创建了一个开源项目,其中包含每个设计模式的详细信息以及 Java 代码实现。此代码库尚未完成,但很快就会完成。如果您想做出贡献,也可以用其他编程语言实现每个设计模式。GitHub
上的设计模式代码库