- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八讲面向对象设计
* * * * * * * * * * * * * * 属性名 是否为空 域 设备ID N 号码 设备名称 N 名称 价格 Y 金额 设备类型 N 设备类型 吸气压力 Y 压力 排气压力 Y 压力 表面面积 Y 面积 候选关键字:设备ID,设备名称 主关键字:设备ID 常见访问:设备ID,设备名称 只父类对应一张表 * (1)为每一个子类定义一个单独的表。这种方法简单,但存在一些问题,因为当增加新的子类或修改父类时,对数据库的维护是麻烦的。 (2)去掉继承的网格结构,使一个层次的任何一个类的所有实例都拥有相同的状态。这种方法的缺点是对许多实例要存储大量的冗余信息。 (3)将父类和子类的状态存储在不同的表中。这种方法很好地反映了继承网格,但它的缺点是访问数据时需要许多跨表连接。 9 设计类中的服务 OOA得到的对象模型,通常并不详细描述类中的服务。 OOD则是扩充、完善和细化面向对象分析模型的过程,设计类中的服务是OOD的一项重要工作内容。 设计类中的服务包括以下活动: 确定类中应有的服务 设计实现服务的方法 a确定类中应有的服务 需要综合考虑对象模型、动态模型和功能模型,才能确定类中应有的服务。 对象模型是进行对象设计的基本框架。但是面向对象分析得出的对象模型,通常只在每个类中列出几个最核心的服务。 设计者必须把动态模型中对象的行为以及功能模型中的数据处理转换成由适当的类所提供的服务。 状态图(或动态模型)的作用 一张状态图描绘了一类对象的生命周期,图中的状态转换是执行对象服务的结果。 对象的许多服务都与对象接收到的事件密切相关 事实上,事件就表现为消息 接收消息的对象必然有由消息选择符指定的服务,该服务改变对象状态(修改相应的属性值),并完成对象应做的动作。 对象的动作既与事件有关,也与对象的状态有关。 如果一个对象在不同状态可以接受同样事件,而且在不同状态接收到同样事件时其行为不同,则实现服务的算法中需要有一个依赖于状态的DO_CASE型控制结构。 功能模型的作用 功能模型中的数据处理,转换成由适当的类所提供的服务。 功能模型指明了系统必须提供的服务。 状态图中状态转换所触发的动作,在功能模型中有时可能扩展成一个用例图。 功能模型的作用 用例图中的用例可能与对象提供的服务相对应,应该在该对象所属的类中定义这个服务——下列规则有助于确定这种定义: 如果某个用例的功能是从参与者的输入中抽取一个值,则该输入就是目标对象。 如果某个用例具有类型相同的输入和输出,而且输出实质上是输入的另一个形式,则该输入输出就是目标对象 如果某个用例从多个输入得出输出值,则该用例是输出类中定义的一个服务。 如果某个用例把对输入处理的结果输出给数据存储或动作对象,则该数据存储或动作对象就是目标对象。 如何确定处理的归属 当一个用例涉及多个对象时,为确定把它作为哪个对象的服务,设计者必须判断哪个对象在这个处理中起主要作用。通常在起主要作用的对象类中定义这个服务。 下面两条规则有助于确定处理的归属: 如果用例影响或修改了一个对象,则最好把该用例与用例的目标(而不是触发者)联系在一起。 考察用例涉及的对象类及这些类之间的关联,从中找出处于中心地位的类。如果其他类和关联围绕这个中心类构成星型,则这个中心类就是处理的目标。 b设计实现服务的方法 设计实现服务的算法时,应该考虑下列几个因素: 算法复杂度。 通常选用复杂度较低(即效率较高)的算法,但也不要过分追求高效率,应以能满足用户需求为准。 容易理解与容易实现。容易理解与容易实现的要求往往与高效率有矛盾,设计者应该对这两个因素适当折衷。 易修改。应该尽可能预测将来可能做的修改,并在设计时预先做些准备。 2. 选择数据结构 在分析阶段,仅需考虑系统中需要的信息的逻辑结构; 在OOD过程中,需要选择能够方便、有效地实现算法的物理数据结构。 3. 定义内部类和内部操作 在OOD过程中,可能需要新增加一些在需求陈述中没有提到的类,这些新类主要用来存放在执行算法过程中所得出的某些中间结果。 复杂操作往往可以用简单对象上的更低层操作来定义。因此,在分解高层操作时常常引入新的低层操作。在面向对象设计过程中应该定义这些新增加的低层操作。 10 设计关联 在对象模型中,关联是联结不同对象的纽带,它指定了对象相互间的访问路径。
您可能关注的文档
最近下载
- 北京十三中2025-2026学年上学期初二数学期中考试试卷.doc VIP
- 2025-2026学年初中信息技术(信息科技)第4册泰山版(2018)教学设计合集.docx
- 黑龙江总工会招聘考试试题及答案.doc VIP
- 六年级上册数学第四单元《解决问题的策略—假设》教学课件(苏教版).pptx VIP
- 新形态一体化教材建设的探索与实践.docx VIP
- 人教版二年级数学上册期中学业质量测评卷 (范围:第一单元至第三单元) (含答案).docx VIP
- 中班科学活动动物的家讲课.pptx VIP
- 生产部绩效考核表经典.doc VIP
- 99(03)S203消防水泵接合器安装(2003年局部修改版).pdf VIP
- 2025年高考模考作文:凡事预则立,不预则废.docx VIP
原创力文档


文档评论(0)