在所介绍的OOA/D中有众多可能的活动和制品以及大量的原则和指导。假设我们必须从这里所讨论的主题中选择一个实用技能,即“荒岛”技能,那么它应该是什么呢?
在OO开发中,至关重要的能力是熟练地为软件对象分配职责。
为什么?因为分配职责是必须要执行的一项活动(无论是画UML图时还是进行程序设计,都要为软件对象分配职责),并且它对软件构件 的健壮性、可维护性和可重用性具有重要影响。
当然,OOA/D中还有其他重要的技能,但强调职责分配是因为它是一项既难以掌握(涉及大量需要权衡和抉择的问题)又至关重要的技能。在实际项目中,开发人员可能没有机会进行其他的建模活动,而只能完成“仓促编码”开发过程。即使在这种情况下,分配职责这项工作也是必不可少的。
因此,本书的设计步骤强调职责分配的原则。
本书描述并应用了对象设计和职责分配的9项基本原则。为了便于学习,将其组织起来并称为GRASP,这些原则都有各自的名称,例如信息专家(Information Expert)和创建者(Creator)。