设计模式
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