设计模式:可复用面向对象软件的基础-GoF
设计模式的分类
书中将 23 种设计模式分为三大类:
1. 创建型(Creational Patterns)
关注对象的创建方式,解决“如何合理地创建对象”的问题。
- 单例模式(Singleton):保证一个类只有一个实例,并提供全局访问点。
- 工厂方法(Factory Method)与抽象工厂(Abstract Factory):将对象的创建过程与使用解耦。
- 建造者(Builder):分步骤构造复杂对象。
- 原型(Prototype):通过拷贝已有实例来创建新对象。
这些模式核心在于提高灵活性,避免直接依赖具体类。
2. 结构型(Structural Patterns)
强调如何将类或对象组合成更大的结构,以获得更高的扩展性和复用性。
- 适配器(Adapter):解决接口不兼容的问题。
- 装饰器(Decorator):在不修改原类的情况下动态扩展功能。
- 代理(Proxy):在对象访问前后增加额外的控制逻辑。
- 组合(Composite):用树形结构表示整体与部分的层次关系。
- 外观(Facade):为复杂系统提供统一接口。
- 享元(Flyweight):共享对象以节省内存。
这些模式更注重“结构复用”,往往能减少系统的复杂度。
3. 行为型(Behavioral Patterns)
聚焦对象之间的交互和职责分配,强调“如何更好地沟通”。
- 观察者(Observer):实现发布-订阅机制。
- 策略(Strategy):将算法的实现与使用分离,允许动态切换。
- 命令(Command):将请求封装为对象,以支持撤销、队列等操作。
- 责任链(Chain of Responsibility):将请求沿着对象链传递,直到被处理。
- 状态(State):允许对象在内部状态变化时改变行为。
- 模板方法(Template Method):在父类中定义算法骨架,具体步骤延迟到子类实现。
行为型模式的核心是降低耦合、提升协作效率。
本博客采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 MM's Journal of Technology!