《设计模式学习笔记》主要探讨了GOF的23种设计模式以及类设计的基本原则,旨在帮助开发者理解和应用这些经过时间验证的成熟解决方案。设计模式是面向对象软件设计中的核心概念,它们为解决常见的设计问题提供了标准的、可重用的方法。
设计模式可以被理解为针对软件设计,特别是类和对象设计的可重用解决方案。正确运用设计模式有助于我们构建灵活、高效和易于维护的系统。在这个过程中,GRASP(General Responsibility Assignment Software Principles)原则起到了关键的指导作用。GRASP包含了9个主要原则:
1. 信息专家模式:责任应分配给拥有实现该责任所需信息的类。
2. 创造者模式:创建类B的责任通常属于与B有特定关系的类。
3. 低耦合:减少类之间的依赖,遵循“不要和陌生人说话”原则,以及拇指规则。
4. 高内聚:确保类内的元素紧密关联,执行相似的任务。
5. 多态:允许通过重载和重写实现不同行为。
6. 纯虚构(纯 Fabrication):创建非自然的类以降低耦合度。
7. 控制器模式:控制器类负责处理系统事件,避免将这些责任赋予用户界面类。
8. 间接(Indirection):通过中介减少对象间的直接交互。
9. 受保护的变化(Protected Variation):封装变化,使系统对扩展开放,对修改封闭。
接下来,GOF的23种设计模式分为三大类:创建型、结构型和行为型。创建型模式关注对象的创建,包括:
1. 简单工厂模式:一个类负责创建其他类的实例。
2. 工厂方法模式:定义一个用于创建对象的接口,由子类决定实例化哪个类。
3. 抽象工厂模式:提供创建一系列相关对象的接口,不指定具体类。
4. 建造者模式:分离复杂对象的构建和表示,允许创建不同的表示。
5. 原型模式:通过复制原型对象创建新对象。
这些模式在实际开发中扮演着重要角色,例如工厂模式可以用于隔离类的创建过程,建造者模式适用于构建复杂对象,而原型模式则在需要快速复制对象时特别有用。
设计模式的学习和实践能够提升我们的设计能力,帮助我们更好地理解和解决复杂系统中的设计问题。通过深入理解GRASP原则和GOF设计模式,我们可以设计出更符合面向对象原则、更具灵活性和可扩展性的系统。再次阅读设计模式的笔记,旨在深化理解,发掘设计模式在实际开发中的真正价值。