GRASP原则 (GRASP (object-oriented design))

信息专家 (Information Expert)

信息专家原则指导我们将职责分配给拥有完成该职责所需信息的类。这意味着哪个类拥有执行特定任务所需的信息,就让哪个类负责该任务。 这有助于封装数据和行为,降低耦合度,提高内聚性。

创建者 (Creator)

创建者原则规定,负责创建其他对象的类应该是能够包含、聚合或使用被创建对象的类。换句话说,负责创建对象的类与被创建的对象之间存在强关联。 这降低了类之间的耦合度,提高了系统的灵活性。

控制器 (Controller)

控制器原则定义了处理系统级操作的类。控制器负责接收和协调系统操作,通常充当用户界面和应用程序之间的一个中间层。 控制器能够将复杂的交互分解为更小的、更易于管理的任务,从而减少其他类的负担。

低耦合 (Low Coupling)

低耦合原则建议,一个类与其他类之间的依赖关系应该尽可能地少。 降低耦合度可以提高代码的可维护性和可重用性。当一个类发生改变时,对其他类的影响最小化。

高内聚 (High Cohesion)

高内聚原则提倡一个类应该专注于单一目的,并且只包含与该目的相关的职责。一个高度内聚的类执行的任务明确、单一,并且与系统中的其他部分紧密相关。 这样做可以提高类的可理解性和可维护性。

多态 (Polymorphism)

多态原则建议使用多态来实现可变行为。多态性允许我们定义一个接口,并且让不同的类以不同的方式实现它。 这种设计模式允许开发人员使用灵活且可扩展的代码。

纯虚构 (Pure Fabrication)

纯虚构原则定义了如果一个职责不适合任何现有类时,创建一个新的类来承担该职责。创建新类是为了满足高内聚和低耦合原则。 纯虚构类封装了职责,并且降低了其他类的复杂性。

间接性 (Indirection)

间接性原则定义了如何通过向两个或多个类分配职责来减少耦合。通过引入中间类,减少了其他类之间的直接依赖关系。 这种中间类提供了一种抽象,使得系统更容易改变和维护。

保护变化 (Protected Variations)

保护变化原则建议,设计那些可能发生变化的部分,使其尽可能与系统中其他的部分隔离开来。 通过在变化的部分和不变的部分之间添加一个抽象层,可以减少变更对系统整体的影响。

结论

GRASP原则是面向对象设计中非常重要的指导原则。它们提供了设计原则,可以帮助开发人员创建清晰、可维护和可扩展的软件。遵循这些原则,可以使软件系统更加健壮,更容易适应变化。理解并应用 GRASP 原则,对于构建高质量的面向对象系统至关重要。

参考资料