【php精品源码栏目提醒】:网学会员为广大网友收集整理了,面向对象_CRC卡片 - 其它资料,希望对大家有所帮助!
使用CRC 判断类、类的行为和类的责任的一个非常好的途径,就是 使用CRC卡片。
CRC卡片CRC card就只是一张与设计中 的某个类相关的备忘卡(4”X 6”或者5”X 7”)。
CRC代表“类,责任和交互”class,responsibility, and collaboration,该卡片分为三个部分,一个部分是 类名,一个是类的责任,另一个是类的交互对象。
使用实际的纸制卡片的一大优点,就是它们尺寸很小,所 以我们被迫必须将类的责任总结为几个单词,因而避免了 让设计团队很快由于底层的细节而陷入困境。
使用纸制卡片的另一个优点(与电脑屏幕上的卡片相比), 就是它们可以在角色扮演或者设计行为阶段,由设计团队 的成员随意移动,重组以及携带。
山东大学计算机学院 2 CRC技术1. CRC模型是一组表示类标准的索引卡——CRC卡的 集合。
2. CRC建模提供识别和组织与产品相关的类。
3. 一旦系统的基本使用场景(用例)确定后,则要标 识侯选类,指明它们的责任和协作,即类-责任-协作 者建模: ① 责任是与类相关的属性和操作,即责任是类知道要做的事 情 ② 协作者是为某类提供完成责任所需要的信息的类,即协作 类4. CRC建模方法提供了一种简单标识和组织与系统或 产品需求相关的类的手段。
3CRC卡示例---销售类 销售类CRC卡 Class:销售类 说明:完成一次销售 职责: 协作类: 创建商品 商品类 计算总价 商品列表类 创建支付 支付类 计算找零 无 4 使用这样的卡片的一个很好的途径就是角色扮演。
当扮演角色的时候, 将空白的卡片分配给设计团队的成员,每人一张卡片。
然后每个人就扮演项目的一个用例。
当团队成员扮演各自的角色时,他们可能会发现需要建立新的类,这 种情况下,持有空白卡片的团员之一就将新的类名写在他/她的卡片 上。
从这个时候开始,这个人就扮演该类的一个对象。
每次需要有新的行 为时,团队都会决定哪个类需要负责担当这个责任,然后让持有这个 类的卡片的团员将这个责任写在自己的卡片上。
团员还需要记下需要与自己的类进行交互的其他类,以便完成这个工 作。
应用程序的主要用例需要进行这样的角色扮演。
山东大学计算机学院 5CRC模型的建模步骤 1. 标识潜在的对象类 通常陈述中的名词或名词短语是可能的潜在对象, 它们以不同的形式展示出来,如: ① 外部实体(如,其它系统、设备、人员),他们生产或消费 计算机系统所使用的信息; ② 物件(如,报告、显示、信函、信号),它们是问题信息域 的一部分; ③ 发生的事情或事件(如,性能改变或完成一组机器人移动动 作),它们出现在系统运行的环境中; ④ 角色(如:管理者、工程师、销售员),他们由与系统交互 的人扮演; ⑤ 组织单位(如:部门、小组、小队),他们与一个应用有关; ⑥ 场所(如:制造场所、装载码头),它们建立问题和系统所 有功能的环境; ⑦ 构造物(如,四轮交通工具、计算机),它们定义一类对象, 或者定义对象的相关类。
6如何标识潜在的对象类 回答下列问题来识别潜在对象: 是否有要储存、转换、分析或处理的信息? 是否有外部系统? 是否有模式(pattern)、类库和构件等? 是否有系统必须处理的设备? 是否有组织部分(organizational parts) 业务中的执行者扮演什么角色?这些角色可以看作 类,如客户、操作员等。
7CRC模型的建模步骤 2. 筛选对象类,确定最终对象类 我们可以用以下选择特征来确定最终的对象: ① 保留的信息:仅当必须记住有关潜在对象的信息,系统才能运 作时,则该潜在对象在分析阶段是有用的; ② 需要的服务:潜在对象必须拥有一组可标识的操作,它们可以 按某种方式修改对象属性的值; ③ 多个属性:在分析阶段,关注点应该是“较大的”信息(仅具 有单个属性的对象在设计时可能有用,但在分析阶段,最好把它表 示为另一对象的属性); ④ 公共属性:可以为潜在的对象定义一组属性,这些属性适用于 该类的所有实例; ⑤ 公共操作:可以为潜在的对象定义一组操作,这些操作适用于 该类的所有实例; ⑥ 必要