学习声明:
参考课程来自: 【【狂神说Java】通俗易懂的23种设计模式教学(停更)】
一、设计模式概述:
1. 设计模式:
- 前辈对代码开发经验的总结,用于解决特定问题的一系列套路。
-> 用于提高代码可复用性,可维护性,稳健性,安全性,灵活性。
2. 意义:
是一种针对面向对象编程OOP的实质应用。(三大特性:封装、继承、多态)
-> 面向对象编程:核心概念为(类和对象),通过对象封装数据和方法,以组织代码。
- 面向过程编程用不到设计模式:
面向过程编程:核心概念为函数和过程,通过函数划分代码模块,按照步骤一步步实现功能;(应用场景例如算法实现,和小型程序等)
3. 基本要素:
(1)模式名称
(2)解决的问题:使用场景
(3)解决方案
(4)效果:优缺点,时间/空间复杂度
e.g. 单例模式 ——> 系统开销
4. GoF23 (Group Of Four,四人帮写的书):共23种设计模式
设计模式分类:
1. 创建型模式:
单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式。
—— 对对象的创建和使用进行分离。
2. 结构模式:
适配器模式,桥接模式,装饰模式,组合模式。
—— 描述如何将类或者对象组成一种更大的结构。
3. 行为型模式:
模版方法模式,命令模式,迭代器模式,观察模式,中介模式,备忘录模式,解释器模式,状态模式,策略模式,责任链模式,访问者模式。
—— 描述类或对象之间如何相互协作共同完成单个对象无法完成的任务。【分配职责】