单例模式
- 全局生成一个唯一实例对象
- 有饿汉式,懒汉式区分
工厂模式
- 简单,工厂,抽象都是工厂模式中的细分,本质上是一样的。
- 主要用于拆分创建对象的复杂代码,将创建交由工厂
- Spring的Di最基本的设计思路就是工厂模式,动态的创建复杂的Bean
建造者模式
- 提前预设好一些属性的实体
- 构造函数
原型模式
- 深拷贝,浅拷贝
- 基于拷贝,节省响应时间
代理模式
- Spring的AOP的底层实现,主要是提供接口供外部调用,隐藏内部细节
- 非业务型的附加功能开发,日志,监控等
- RPC也可以当作一种代理
桥接模式
- 组合优于继承
- 类似于代理模式
- 抽象和实现通过组合,随意组合
装饰器模式
- 类似于代理模式
- 跟原始类做对比,增强原始类的基础功能,代理类是原始类无关功能
适配器模式
- 接口不兼容,老项目重构
- 抽象日志的公共方法,底层细节随意替换
门面模式/外观模式
- 接口的粒度相关
- 是否合并接口,多次请求
组合模式
- 将数据组装成易于操作的数据结构
享元模式
- 本质是复用对象,节省内存,针对的是不可变对象
- jdk中的Integer