设计模式


date: 2021-12-16

创建者模式:

1. 工厂方法模式
	- 将一组具有相同特性的对象都继承于他们的抽象,通过工厂类来创建相应的对象,返回的应该是他们的抽象。(针对单一产品类)
2. 抽象工厂模式
 	- 与工厂方法模式相同,但是对应的是产品族。
3. 建造者模式
 	- 根据不同的入参构建出不同的结果。
4. 原型模式
 	- 利用clone特性实现的模式。
5. 单例模式
 	- 构建出全局唯一实例对象。

结构型模式:

1. 适配器模式
 	- 通过构建一个适配器类,来把转换类型不同的信息转化为统一的。 adaptor(adaptee) => 一种对象
2. 桥接模式
	- 在A类中持有B类的接口,在实例化时候传入B的具体实现, 这个入参称为桥。
3. 组合模式
	- 当有多种组合判断时,可以考虑用决策树来解决,简化调用者使用。
4. 装饰器模式
	- 包装原有类,可以在原有逻辑前后添加逻辑,像Spring的 HandlerInterceptor 一样。
5. 外观模式/门面模式
	- 配置统一入口,在入口处实现特定逻辑。 (接口黑名单)
6. 享元模式
	- 将公用的元素暴露出去,但是要保证一致性。
7. 代理模式
	- 对一个类生成代理类,帮助其完成一系列事情。(mybatis 查询)

行为模式:

<设计模式,优雅在于单一开闭,在于可扩展性。缺点在于类多了很多。>

<应用: 剥离抽象对象,具体对象实现抽象对象,外界应用时可以传入具体的实现类。或者用一个map<Type,AbstractObject> 让外界调用。 >


基于小傅哥的《重学Java设计模式》总结。 [在用的时候切记思考是否过度设计了。]

Last updated