《Design Patterns: Elements of Reusable Object-Oriented Software》
------ 尝试构建高效、可维护和可扩展的方式来构建软件系统。
#### 1.设计原则:
- 单一职责原则(SRP):一个类只做一件事
- 开闭原则(OCP):对扩展开放,对修改关闭
- 里氏替换原则(LSP):子类应能替换父类
- 接口隔离原则(ISP):避免臃肿接口
- 依赖倒置原则(DIP):依赖抽象而非实现
设计模式是软件设计中常见问题的可重用解决方案,分为三大类:这些模式由"四人帮"(GoF)在《设计模式:可复用面向对象软件的基础》一书中提出,是面向对象设计的重要指导原则。
#### 2.创建型模式 (5种)
1. 单例模式(Singleton) - 确保一个类只有一个实例
2. 工厂方法模式(Factory Method) - 定义创建对象的接口,让子类决定实例化哪个类
3. 抽象工厂模式(Abstract Factory) - 创建相关或依赖对象的家族
4. 建造者模式(Builder) - 分离复杂对象的构建与表示
5. 原型模式(Prototype) - 通过复制现有对象来创建新对象
#### 3.结构型模式 (7种)
1. 适配器模式(Adapter) - 转换接口以兼容不同类
2. 桥接模式(Bridge) - 分离抽象与实现
3. 组合模式(Composite) - 树形结构处理对象集合
4. 装饰器模式(Decorator) - 动态添加职责
5. 外观模式(Facade) - 简化复杂子系统接口
6. 享元模式(Flyweight) - 共享对象以减少内存使用
7. 代理模式(Proxy) - 为其他对象提供代理或占位符
#### 4.行为型模式 (11种)
1. 责任链模式(Chain of Responsibility) - 请求的链式处理
2. 命令模式(Command) - 封装请求为对象
3. 解释器模式(Interpreter) - 定义语言的文法表示
4. 迭代器模式(Iterator) - 顺序访问集合元素
5. 中介者模式(Mediator) - 集中对象间的交互
6. 备忘录模式(Memento) - 捕获并恢复对象状态
7. 观察者模式(Observer) - 对象间的依赖通知
8. 状态模式(State) - 对象状态改变行为
9. 策略模式(Strategy) - 封装算法族
10. 模板方法模式(Template Method) - 定义算法骨架
11. 访问者模式(Visitor) - 分离算法与对象结构