设计模式汇总篇
# 说明
# 设计模式
https://refactoringguru.cn/design-patterns/proxy/python/example
https://mp.weixin.qq.com/s/rcGwD306aZaXThVMm53t_A
# 文档和代码
https://shusheng007.top/2021/09/07/design-pattern/
https://github.com/shusheng007/design-patterns
1
2
3
4
5
6
7
2
3
4
5
6
7
# UML类图
# uml图六种箭头的含义(泛化、实现、依赖、关联、聚合、组合)
https://blog.csdn.net/qq_20936333/article/details/86773664
1
2
2
# 泛化(继承)
# 实现
# 依赖
# 关联
# 组合
1
# 聚合
1
# 基础
# 接口和抽象类
接口用于定义类之间的契约,强调类所能做的事情
而抽象类用于作为其他类的基类,提供一些通用的实现和属性 (一个集合 eg. 奔驰)
抽象类通常定义一组或者一个类型的集合,例如奔驰可以定义一个抽象类
1. 父类定义的抽象方法 子类必须实现
2. 不能被实例化
3. 一个类只能继承一个抽象父类
4. 抽象类只能用于其他类的父类
接口:往往是定义通用的方法 例如上面的抽象类可以集成接口 来实现统一的行为
1. 一个类可以实现多个接口
2. java使用其进行多继承
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 23种设计模式
注意组合和继承
1
# 行为型
# 策略模式
1. 策略模式通常需要确定一个接口,具体的策略类需要重写改方法
2. 定义一个对象集合包装这些类
定义一个算法的系列,将其各个分装,并且使他们有交互性
策略模式使得算法在用户使用的时候能独立的改变
1
2
3
4
5
2
3
4
5
# 迭代器模式
提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示
1
# 结构型
# 代理模式
为其他对象提供一个代理以控制对这个对象的访问
1
# 桥接模式
将一个抽象与实现解耦,以便两者可以独立的变化
1
# 装饰器模式
# AOP实现 扩展类的功能
向某个对象动态地添加更多的功能
修饰模式是除类继承外另一种扩展功能的方法
1
2
3
2
3
# 创建型
# 简单工厂
即 根据传入的参数 进行动态的选择对象 可以看成是一个对象池
1
# 抽象工厂
# 产品族概念
为一个产品族提供了统一的创建接口
当需要这个产品族的某一系列的时候,可以从抽象工厂中选出相应的系列创建一个具体的工厂类
1
2
3
2
3
# 工厂方法
定义一个接口用于创建对象,但是让子类决定初始化哪个类
工厂方法把一个类的初始化下放到子类
1
2
2
# 建造者(生成器)模式
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
1
上次更新: 2023-06-26 10:03:21