Java设计模式-快速入门
Java设计模式-快速入门
设计模式基础认知
#### 定义与价值
核心定义:解决特定问题的通用解决方案,经过验证的解决方案框架。
作用:提升代码的可维护性/扩展性/复用性
解耦对象关系,提升代码可维护性(模块解耦)
预留扩展点,增强系统扩展性(灵活应对需求变更)
抽象共性逻辑,促进团队协作(统一设计语言)
课程目标
理解 GOF 设计模式的核心思想与典型应用场景;
能看出代码中的优化点,使用设计模式优化现有系统;
能写出“低耦合、高扩展、团队一眼能懂”的编码实现。
设计模式核心原则
SOLID原则体系
原则缩写 | 全称 | 核心要义 | 典型应用场景 |
---|---|---|---|
SRP | 单一职责原则 | 一个类只负责单一功能 | 分层架构(DAO/Service/Controller) |
OCP | 开闭原则 | 对扩展开放,对修改关闭 | 插件化系统、策略模式 |
LSP | 里氏替换原则 | 子类可替换父类且不破坏逻辑 | 继承体系设计 |
ISP | 接口隔离原则 | 避免客户端依赖不需要的方法 | 微服务接口定义 |
DIP | 依赖倒置原则 | 高层依赖抽象而非具体实现 | 依赖注入(Spring IoC) |
其他重要原则
迪米特法则:对象间最小化交互
合成复用原则:优先使用组合而非继承
设计模式分类体系
三大分类维度
分类维度 | 包含模式类型 | 典型模式(示例) | 核心关注点 |
---|---|---|---|
创建型 | 对象实例化过程控制 | 单例、工厂、建造者、原型 | 对象创建的灵活性与安全性 |
结构型 | 类/对象组合方式优化 | 适配器、装饰器、代理、外观 | 系统扩展性与兼容性 |
行为型 | 对象间协作与职责分配 | 观察者、策略、命令、责任链 | 交互逻辑与算法动态切换 |
23种模式全景图
行为型(11 种)
结构型(7 种)
创建型(5 种)
使用
使用
克隆对象
可叠加
可结合
可能封装
保持迭代状态
状态切换策略
触发
构建复杂结构
创建策略对象
事件总线
遍历结构
责任链模式
命令模式
解释器模式
迭代器模式
中介者模式
备忘录模式
观察者模式
状态模式
策略模式
模板方法模式
访问者模式
适配器模式
桥接模式
组合模式
装饰器模式
外观模式
享元模式
代理模式
单例模式
工厂方法模式
抽象工厂模式
建造者模式
原型模式