转载地址:http://www.lifevv.com/sysdesign/doc/20071211214255251.html

 

GRASP是General Responsibility Assignment Software patterns(通用职责分配软件模式)的简称,它的核心思想是“职责分配(Responsibility Assignment)”。GRASP提出了几个基本原则,用来解决面向对象设计的一些问题。

 

Craig Larman氏在《Applying UML and Patterns》一书中提出了GRASP设计模式的概念。作者称其为设计模式,其实,更好的理解应该为设计原则。因为,与GoF等设计模式不同的 是,GoF等设计模式是针对特定问题而提出的解决方法,而GRASP则是站在面向对象设计的角度,告诉我们怎么样设计问题空间中的类与它们的行为责任,以 及明确类之间的相互关系等等。GRASP可以说是GoF等设计模式的基础。

 

GRASP概要

 

GRASP是General Responsibility Assignment Software patterns(通用职责分配软件模式)的简称,它的核心思想是“职责分配(Responsibility Assignment)”,用职责设计对象:"Designing Objects with Responsibilities"。它包含了9个基本模式:
1,信息专家 (Information expert)
2,创建者 (Creator)
3,高内聚 (High Cohesion)
4,低耦合 (Low coupling)
5,控制器 (Controller)
6,多态性 (Polymorphism)
7,纯虚构 (Pure Fabrication)
8,间接性 (Indirection)
9,变化预防 (Protected Variations)

GRASP的主要特征:
- 对象职责分配的基本原则。
- 主要应用在分析和建模上。

GRASP的核心思想的理解:
自己干自己的事(职责的分配)
自己干自己的能干的事(职责的分配)
自己只干自己的事(职责的内聚)

相关文章: