23种设计模式 创建型模式 单例模式 饿汉式和懒汉式 双重检测锁式 静态内部类 枚举单例式 单例对象占用资源少,不需要延时加载 采用 枚举 > 饿汉式 单例对象占用资源大,需要延时加载 采用 静态内部类 > 懒汉式 5 种实现方式推荐使用静态内部类的方式实现,线程安全懒加载效率高 保证一个类只有一个实例,并且提供public一个访问该实例的全局访问方法 应用于 读取配置文件/数据库连接池/servlet web层前端控制器/日志记录/spring bean创建 工厂模式 实现了创建者和调用者的分离 分为 简单工厂模式 工厂方法模式 抽象工厂模式 面向对象设计基本原则 分为开闭原则 DI依赖反转原则 Law of Deter原则 设计理论建议使用工厂方法模式,但是一般使用 简单工厂模式 应用于Hibernate的sessionFactory创建/jdbc中Connection对象获取/springIoC容器创建管理bean对象反射中newInstance()的对象创建 简单(静态)工厂模式 使用的最多 /工厂方法模式复合设计规则在不修改已有类的前提下通过新增工厂实现水平扩展/抽象工厂 可以增加产品族 不能增加产品 抽象工厂模式 建造者模式 原型模式 结构型模式 适配器模式 桥接模式 装饰者模式 组合模式 外观模式 享元模式 代理模式 行为型模式 模版方法模式 命令模式 迭代器模式 观察者模式 中介者模式 备忘录模式 解释器模式 状态模式 策略模式 责任链模式 访问者模式