
书: https://pan.baidu.com/s/1xhc2t938Uhd6HLI6pHjlVg?pwd=77ya
笔记如下:
一、设计模式基础原则
- 开闭原则(OCP):对扩展开放,对修改关闭,通过抽象化减少代码改动。
- 单一职责原则(SRP):一个类只负责一个功能领域,避免“上帝类”。
- 依赖倒置原则(DIP):高层模块不应依赖低层模块,二者应依赖抽象(接口或抽象类)。
- 里氏替换原则(LSP):子类必须能完全替代父类,保持行为一致性。
- 接口隔离原则(ISP):客户端不应被迫依赖它不需要的接口,避免“胖接口”。
二、创建型模式(5种)
- 单例模式(Singleton):确保全局唯一实例,注意线程安全(枚举、双重检查锁)。
- 工厂方法模式(Factory Method):将对象创建延迟到子类,扩展性更强。
- 抽象工厂模式(Abstract Factory):创建产品族(如不同风格的UI组件)。
- 建造者模式(Builder):分步构造复杂对象(如
StringBuilder
)。 - 原型模式(Prototype):通过克隆(
Cloneable
)复制对象,避免重复初始化。
三、结构型模式(7种)
- 适配器模式(Adapter):兼容不兼容接口(如
InputStreamReader
)。 - 装饰器模式(Decorator):动态扩展功能(如Java I/O流体系)。
- 代理模式(Proxy):控制对象访问(动态代理基于
InvocationHandler
)。 - 外观模式(Facade):简化子系统调用(如Spring的
JdbcTemplate
)。 - 组合模式(Composite):树形结构处理(如菜单/文件系统)。
- 享元模式(Flyweight):共享细粒度对象(如
Integer.valueOf()
缓存)。 - 桥接模式(Bridge):分离抽象与实现(如JDBC驱动架构)。
四、行为型模式(11种)
- 策略模式(Strategy):算法族封装,自由切换(如
Comparator
排序策略)。 - 观察者模式(Observer):事件驱动(Java内置
Observable
类)。 - 责任链模式(Chain of Responsibility):请求链式处理(如Servlet Filter)。