- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五讲 定义属性和操作
第五讲 定义属性与操作;第五讲 定义属性与操作(chap 5);一、对象的属性与操作;对象的操作分为内部操作和外部操作;外部操作对外提供一个消息接口,通过这个接口接收对象外部的消息并对外提供服务。
实例属性:是每个对象实例各自拥有的属性,它描述了各个对象实例自身的特征;
类属性:是一个类的全部对象实例共同拥有的属性,它的值被这个类的全部对象实例所共享。
主动操作:不需要接收消息就能主动执行的操作称为主动操作,用来定义进程、线程等;
被动操作:只有接收到消息才能执行的操作,用来定义函数、过程等 ;;二、定义属性;(6)考虑是否增设描述对象状态的属性
如:设备:状态(关闭、待命、运行、故障)
(7)用什么属性表示关联关系(包含聚合和组合):关联关系要通过在有关的对象中设立相应的属性来实现。
2、审查与筛选
(1)是否体现了以系统责任为目标的抽象(该属性是否提供了系统中有用的信息?)
如:图书(长、宽、高、重量)
人(身高、体重、年龄)
(2)是否描述了对象本身的特征
如:课程(主讲教师姓名、主讲教师电话、主讲教师住址)
(3)该属性是否可通过继承得到
(4)是否可从其他属性直接导出
如:职员(出生年月、年龄);3、推迟到OOD考虑的问题
(OOA旨在建立一个反映问题域并独立于实现的系统分析模型,与实现条件有关的问题均应推迟到OOD阶段考虑。)
(1)规范化问题
如:属性的数据类型
(2)对象标识问题
对象标识:是分配给每个对象的永久性标识,符合下列条件:
a.在一定的范围或领域中是惟一的(惟一性);
b.与对象实例的特征、状态及分类无关(独立性) ;
c.在对象存在期间保持一致(一致性) 。
对象标识分为内部标识和外部标识。对象标识问题与实现时采用何种支持系统有关。
(3)性能问题
如:对象操作的执行速度;三、定义操作;2、策略与启发
(1)考虑系统责任:功能需求---对象---操作
如:类Book的操作
findBook():查找指定编号的Book对象;
getTitleName():获取图书的标题名称
getID():获取图书的编号
setID():设置图书的编号
getLoan():获取图书的借阅记录
setLoan():设置图书的借阅状态
(2)考虑问题域:每个对象所代表的实际事物在问题域中呈现哪些行为?
(3)分析对象的状态:在每种状态下对象发生了什么行为(用何操作描述)?状态的转移由什么操作引起?
(4)追踪操作的执行路径;3、审查与调整
(1)检查每个操作是否真正有用(直接提供某种功能或响应其他对象请求而间接某项功能)
(2)检查每个操作是不是高内聚的(一个操作只完成一项明确定义的、完整单一的功能)
4、认识对象的主动行为
(1)在问题域中,操作所描述的对象行为是否是由对象主动呈现?
(2)重点考查与系统边界外的参与参与者直接交互的对象的行为?
(3)完成系统最外层功能的操作
(4)按执行路径逆向追踪
;5、操作过程描述
对操作的定义只给出它的定义,乃至它的输入参数是不够的,还需要把操作的执行过程即操作流程描述出来。
过程描述方法:流程图、活动图;四、建立类图的特征层;1、属性说明
属性名:
数据类型:
属性解释:简要说明该属性的意义与作用
多态性:
属性所体现的关系:关联、聚合、组合
其他:
2、操作说明
操作名、输入参数及返回类型:
操作解释:简要说明该操作所完成的功能
主动性:
多态性:
消息发送:说明该操作在执行时需要向其他对象的每一种消息
操作流程:
其他:;五、接口及其用途;接口的表示法;在面向对象技术中,引入接口的作用是:在接口的使用者与提供者之间建立了一种灵活的衔接机制,有利于对类、组件等软件成分进行灵活的组装和复用。
通过接口将操作的声明与实现相分离,可更好地隔离接口的使用者与提供者在系统开发与维护中的相互影响。
文档评论(0)