GRASP(中文版) ——General Responsibility Assignment Software patterns(通用职责分配软件模式) 它的核心思想是“职责分配(Responsibility Assignment)”
GRASP 提出了几个基本原则,用来解决面向对象设计的一些问题
Craig Larman 氏在《Applying UML and Patterns》一书中提出了 GRASP 设计模式的概念
作者称其为设计模式,其实,更好的理解应该为设计原则
因为,与 GoF 等设计模式不同的是,GoF 等设计模式是针对特定问题而提出的解决方法,而 GRASP 则是站在面向对象设计的角度,告诉我们怎么样设计问题空间中的类与它们的行为责任,以及明确类之间的相互关系等等
GRASP 可以说是 GoF 等设计模式的基础
GRASP 概要 它包含了 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 的核心思想的理解: 自己干自己的事(职责的分配) 自己干自己的能干的事(职责的分配) 自己只干自己的事(职责的内聚) 面向对象设计 所谓面向对象设计,就是在系统设计的过程中,通过把系统分成相对独立但又互相联系的对象组合的一种设计方法
对象具有属性和行为,对象间通过消息进行交互(协作)
面向对象设计一般有以下几个关键步骤: