2007
年
3
月
19
日星期一
第二章
责任驱动设计
设计挑战
对象设计过程中,面临的两个挑战:
l
正确了解用户的关注点和需要。
l
以能让用户更理解的方式表达设计
关于对象
P43
对象是描述概念、事物、特有责任和交互的最好方式。
我觉得作者在这里谈论的对象应该是领域对象,实际上就是说通过对象来描述需要实现的系统。我可以想见这样一个思维的抽象空间,一些对象再各进其职,就好像第一章所谓的对象社区一样,我想现在的问题就是如何识别对象了!下一章叫发现对象,还有
Fowler
的《分析模式》都是在将从生活或领域中寻找和发现对象的,最近在做毕设,也在想到底怎么用对象的方式来描述我所做的系统呢?——虽然这个系统已经做完了,而且我也采用了面向对象技术,并且我昨天也说过,在看这些书之前我已经觉得我们应该以一种自然的方式了设计对象,对象就是有生命的卡通形象,但是那时候我还不是很系统的思考这个问题,而且由于整个系统是采用结构化的方式构建的,因此某些对象的职责已经被其他的函数实现了,我就没有创建相应的对象,而且根据“信息专家”(
GRASP
)等模式,我还需要重新思考一下我当初设计的对象是否合理,再问一次自己,它们是当之无愧的对象吗?
概念对象
向对象设计迈出的第一步是描述候选对象的关键概念。这些概念是直接与核心业务领域相关的高层概念。关于系统的核心是什么,作者认为这要取决于应用软件的侧重点和它的期望结果。核心可以指:
l
关键领域内的对象、概念以及进程。
l
实现了复杂算法的对象
l
技术相关的底层基础架构
l
管理应用程序任务的对象
l
用户界面对象
我觉得很关键的一点是作者帮我们整理了一下应该关注的对象,实际上这些一看就知道是对的,但是往往我们在真正应用时考虑的不是很周全,或者很难分清主次。
CRC
卡
CRC
是候选(
Candidates
)、责任(
Responsibilities
)、协作者(
Collaborators
)
3
者的缩写。在
CRC
卡的正面记录对象的信息和执行的行为。就是所谓的责任和协作者。责任指的是一个对象必须了解的信息和执行的动作。协作者是指在对象履行责任的过程中,其他的被该对象驱动履行其相关责任的对象。背面是候选对象的特征,包括候选对象的简介和使用的模式。候选指的就是该卡片记录的候选对象。