设计模式

99 阅读1分钟

工厂模式

简单工厂 适用于类型比较小,通过传入不同参数返回不同对象

工厂方法 定义一个创建u对象的接口,让接口实现类创建对象

抽象工厂 比如Connection就是一个抽象工厂

项目中举例:sendmsg,多种渠道比如阿里云 华为云 等,创建于给sendmsg接口,多种实现类,一个工厂,根据不同业务发送不同类型的短信。

单例模式

只存在一个实例,减小创建销毁的开销,默认bean是单例,数据库连接池单例,ServletContext是单例

饿汉式,类加载时创建对象,无多线程问题,有懒加载问题

懒汉式:用syn效率低,不推荐

双重校验 推荐 使用volatile,

静态内部类 推荐

枚举 Java推荐

代理模式

不改变原有代码增加功能,如AOP加入日志功能等,

策略模式

创建线程池时,需要传入拒绝策略,当创建新线程使当前运行的线程数超过 maximumPoolSize 时会使用相应的拒绝策略处理。

原型模式

用于创建重复的类,又保证性能,深拷贝,浅拷贝,深拷贝可用重写所有clone(),工具类,序列化等