网站大量收购独家精品文档,联系QQ:2885784924

第17章grap基于职责设计对象.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第17章grap基于职责设计对象

第17章 GRASP: 基于职责设计对象 暨南大学计算机系 黄战 目标 学习使用面向对象设计的5个GRASP原则或模式 简介 决定方法归属于哪个对象和对象之间如何交互,其意义重大,应谨慎从事。 掌握OOD可以通过在实例中学习和在设计中对模式的命名 UML与设计原则 由于UML只是一种标准、可视化建模语言,了解它的细节并不能教会你如何用对象思想来思考 最关键的软件开发工具是受过良好设计原则训练的思维,而不是UML或任何其他技术 对象设计 以迭代方法的设计示例 已经完成了哪些活动?——以前的活动和制品 事物之间具有什么样的关系?——以前的制品对OO设计的影响 需要完成多少设计建模工作,如何完成? 有哪些输出? 分析制品与对象设计之间有什么关系? 对象设计的输入是什么 场景 UML包图 补充规格说明 词汇表 领域模型 对象设计中的活动 给定一个或多个输入,开发者有以下3个选择: 1:立即开发编码(理想的情况是用测试优先开发方式) 2:开发为对象设计进行一些UML建模 3:利用其他建模技术,如CRC cards. 对象设计中的活动 在UML案例中,真正要关注的并不是UML,而是可视化建模,即使用一种语言,这种语言比纯文本有更强的可视化功能。 方法是使用基于职责驱动设计,考虑怎样给协作中的对象分配职责 有哪些输出? 考虑UML交互图和类图 例如: 尤其对于对象设计而言,我们期望在开始编码之前针对设计中的难点创建UML交互图、类图和包图 UI的草图和原型 数据库模型 报表的草图和原型 职责和职责驱动设计 思考软件对象设计以及大型构件的流行方式是,考虑其职责、角色和协作。这些被称为职责驱动设计的大型方法的一部分。 对象职责 = 其所作所为的抽象 职责 类元的契约或义务 就对象的角色而言,职责与对象的义务和行为相关 职责分为两种类型: 行为: 自身执行一些行为,如创建对象或计算 初始化其他对象中的动作 控制和协调其他对象中的活动 认知: 对私有封装数据的认知 对相关对象的认知 对其能够导出或计算的事物的认知 例如:Sale负责创建SaleLineItems(行为职责) Sale负责认知其总额(认知职责) 职责-方法 职责的粒度会影响到类和方法的转换 职责与方法并非同一事物,职责是一种抽象,而方法实现了职责 职责-协作 RDD也包括了协作的思想 职责借助于方法来实现,该方法既可以单独动作,也可以于其他方法和对象协作 职责-协作 Sale类可以定义一个或多个来获取其总额,比如命名为getTotal方法。为了完成该职责,Sale可能与其他对象协作,例如每个SaleLineItem对象发送getSubtotal消息以获取其小计金额 RDD RDD是思考OO软件设计的一般性隐喻 RDD使我们把OO设计看作是有职责对象进行协作的共同体 GRASP对一些基本的职责分配原则进行了命名和描述,因此掌握这些原则有助于支持RDD GRASP GRASP=使用职责进行OO设计的学习工具 GRASP原则或模式是一种学习工具,它能帮助你理解基本对象设计,并且以一种系统的、合理的、可以解释的方式来运用设计推理 对这种设计原则进行理解和使用的基础是分配职责的模式 GRASP-目标 以GRASP作为工具,帮助掌握OOD的基本知识并理解对象设计中的职责分配 职责、 UML 、GRASP 在UML中,绘制交互图是考虑这些职责(实现为方法)的时机 GRASP中的基本原则可以指导分配职责,当绘制UML交互图以及编写代码时,就可以运用GARSP原则了。 什么是模式? 模式: 有经验的OO开发者建立了既有通用原则又有惯用方案的指令系统来指导他们编制软件 在OO设计中,模式是对问题和解决方案的已命名描述,它可以用于新的语境 理想情况下,模式为在变化环境中如何运用和权衡其解决方案给出建议 好的模式 简单地讲,好的模式是成对的问题/解决方案,并且具有广为人知的名称,它能用于新的语境中,同时对新情况下的应用、权衡、实现、变化等给出了建议 GoF Gang of Four(GoF) 设计模式-Gamma,Helm,Johnson,and Vlissides 23个OO设计模式 GRASP 定义了9个基本OO设计原则或基本设计构件 某人的模式是其他人的原始构造块 OO设计背景 1:迭代过程背景-有哪些优先制品?它们与OO设计模型有什么关系?我们应当花费多少时间进行设计建模? 2:作为对象设计隐喻的RDD:有职责对象协作的共同体 3:作为OO设计思想命名和解释方

文档评论(0)

181****7127 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档