工厂模式。
定义:通过工厂类封装对象创建逻辑,实现创建与使用解耦。包含简单工厂、工厂方法、抽象工厂三种实现形式。
场景:数据库连接池管理、Spring框架的BeanFactory。
单例模式。
定义:确保类仅有一个实例,并提供全局访问点。
场景:日志记录器、Spring默认Bean作用域实现。
建造者模式。
定义:分步骤构建复杂对象,支持不同配置参数组合。
场景:HTTP请求构造器、MyBatis的SqlSessionFactoryBuilder。
结构型设计模式
适配器模式。
定义:通过中间层转换接口,使不兼容组件协同工作。
场景:旧系统接口改造、Spring MVC的HandlerAdapter。
装饰器模式。
定义:动态添加功能到对象,避免继承导致的子类膨胀。
场景:Java IO流体系、Spring的BeanWrapper。
代理模式。
定义:通过代理对象控制原始对象的访问,实现功能增强。
场景:AOP实现、远程方法调用。
行为型设计模式
观察者模式。
定义:建立对象间一对多依赖关系,状态变化自动通知所有观察者。
场景:事件驱动系统、Spring的事件发布机制。
策略模式。
定义:封装算法簇并支持运行时动态切换。
场景:支付方式选择、Spring的ResourceLoader策略接口。
模板方法模式。
定义:定义算法骨架,允许子类重写特定步骤。
场景:JdbcTemplate操作流程、工作流引擎设计
责任链模式。
链式调用传递