零雨其蒙's Blog

做优秀的程序员
随笔 - 59, 文章 - 13, 评论 - 58, 引用 - 0
数据加载中……

零雨其蒙《对象设计:角色、责任和协作》学习笔记(二)

2007 3 19 日星期一

 

 

第二章 责任驱动设计

设计挑战

对象设计过程中,面临的两个挑战:

l         正确了解用户的关注点和需要。

l         以能让用户更理解的方式表达设计

 

关于对象

   P43 对象是描述概念、事物、特有责任和交互的最好方式。

我觉得作者在这里谈论的对象应该是领域对象,实际上就是说通过对象来描述需要实现的系统。我可以想见这样一个思维的抽象空间,一些对象再各进其职,就好像第一章所谓的对象社区一样,我想现在的问题就是如何识别对象了!下一章叫发现对象,还有 Fowler 的《分析模式》都是在将从生活或领域中寻找和发现对象的,最近在做毕设,也在想到底怎么用对象的方式来描述我所做的系统呢?——虽然这个系统已经做完了,而且我也采用了面向对象技术,并且我昨天也说过,在看这些书之前我已经觉得我们应该以一种自然的方式了设计对象,对象就是有生命的卡通形象,但是那时候我还不是很系统的思考这个问题,而且由于整个系统是采用结构化的方式构建的,因此某些对象的职责已经被其他的函数实现了,我就没有创建相应的对象,而且根据“信息专家”( GRASP )等模式,我还需要重新思考一下我当初设计的对象是否合理,再问一次自己,它们是当之无愧的对象吗?

 

概念对象

向对象设计迈出的第一步是描述候选对象的关键概念。这些概念是直接与核心业务领域相关的高层概念。关于系统的核心是什么,作者认为这要取决于应用软件的侧重点和它的期望结果。核心可以指:

l         关键领域内的对象、概念以及进程。

l         实现了复杂算法的对象

l         技术相关的底层基础架构

l         管理应用程序任务的对象

l         用户界面对象

 

我觉得很关键的一点是作者帮我们整理了一下应该关注的对象,实际上这些一看就知道是对的,但是往往我们在真正应用时考虑的不是很周全,或者很难分清主次。

 

CRC

   CRC 是候选( Candidates )、责任( Responsibilities )、协作者( Collaborators 3 者的缩写。在 CRC 卡的正面记录对象的信息和执行的行为。就是所谓的责任和协作者。责任指的是一个对象必须了解的信息和执行的动作。协作者是指在对象履行责任的过程中,其他的被该对象驱动履行其相关责任的对象。背面是候选对象的特征,包括候选对象的简介和使用的模式。候选指的就是该卡片记录的候选对象。

posted on 2007-03-20 16:00 零雨其蒙 阅读(282) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: