此文参考了这篇博客,建议读者阅读原文。设计模式
面向对象(Object-Oriented,OO)是当下软件开发的主流方法。在OO分析与设计中,咱们首先从问题领域中抽象出领域模型,在领域模型中以适当的粒度概括出相关的类;而后定义各个类之间的关联关系,并给这些类分配相应的职责,同时定义这些类之间的协做方式。将相应的职责分配给具体的类是OO过程当中很是重要的一步。GRASP设计模式是职责分配过程当中的一套很是重要的设计模式。它给出了在给类分配职责的过程当中,设计者们所须要听从的一些原则或者指导性的建议spa
GRASP不是平时说的GoF(Gang of Four)的23种设计模式。GRASP设计模式描述的是在OO设计中为互相协做的类分配职责的原则或者建议,而GoF的设计模式则是在更高的层次上描述一个OO系统或者其局部系统的行为以及结构上的抽象。GRASP与GoF最大的区别是它描述的是互相协做的多个类间职责分配的原则或者建议。.net
GRASP设计模式的全称是General Responsibility Assignment Software Patterns,即通用职责分配软件模式。它定义了9个基本的OO设计原则或基本的设计构件。这9个设计模式分别是:设计
GRASP是对象职责分配的基本原则,其核心思想是职责分配(Responsibility Assignment),用职责设计对象(Designing Objects with Responsibilities)orm