面向对象程学的设计部分演示课件OO的设计.pptVIP

面向对象程学的设计部分演示课件OO的设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象程学的设计部分演示课件OO的设计

在可视化的编程环境下,能节省很多界面设计工作 多态,一般类上有关系 对关联进行调整后,要考虑关联的实现方式。 (1)聚合 决定在整体类中指出部分类时,是用部分类直接作为整体类中的属性的数据类型,还是把部分类用作指针或对象标识的基类型,再用这样的指针或对象标示定义整体类的属性。 如果是组合,最好用第1种方式,否则就需要在程序中保证整体对象与部分对象的生命周期的一致性。 (2)关联 通常,通过在对象中设立指针或对象标识以指向或记录另一端的对象的方法,来实现关联。 如果是单向关联,就在源端的类中设立属性,用来标记另一端的类将来创建的对象 如果是双向关联,就在两端类中各设立属性,用来标记对方将来创建的对象。 如果关联中对方类的多重性是1,那么可在本方设立一个指向对方对象的指针,或设立一个记录对方对象引用的属性。 如果对方类的多重性大于1,那么可在本方设立一个指向对方对象的指针集合或引用集合。 若关联的某端有角色名,最好把其作为另一端类的属性名,以访问与角色名相邻的类。 (6)调整与完善属性 按照语法:[可见性] 属性名[‘:’类型][‘=’ 初始值] 对属性的定义进行完善。 每一个属性或者包含单个值,或者包含作为一个整体的密切相关的一组值 若要给出对属性的性质的约束,如“工龄60”或“0≤英语成绩≤100”等,也要看语言是否对其直接支持,否则要在算法上考虑如何实现。 为了维护数据的完整性,必须要考虑需要一起更新的多个相关联的数据值。特别是,当基本的数据发生变化时,必须更新导出的属性。通过下列方法可以做到这一点: 1)显式的代码 因为每一个导出属性是根据一个或多个基本对象属性定义的,更新导出属性的一种方法是,在更新基本对象属性的操作中插入更新导出属性的代码。这种附加的代码将明确地更新依赖基本对象属性的导出属性,使得基本属性与导出属性的值同步。 2)批处理性的重计算 当基本数据以批处理的方式改变时,可能在所有的基本数值改变之后,再重新计算所有的导出属性的值。 3)触发器 凡是依赖基本属性的属性,都必须将它自己向基本属性注册。当基本属性的值被更新时,由专门设置的触发器更新导出属性的值。 (7)构造和优化算法 对于需要设计的操作,要从如下几方面进行详细地定义: (1) 按照定义操作的格式: [可见性] 操作名[‘(’参数列表‘)’][‘:’返回类型] 完善操作的定义。 (2)从问题域的角度,根据其责任,考虑实现操作的算法,即对象是怎样提供操作的。 (3)若操作有前后置条件或不变式,考虑编程语言是否予以支持。若不支持,在操作的方法中要予以实现。 (4)建议进一步地分析特定类的对象相关的所有交互图,找出其所有与之相关的消息。一个对象所要响应的每个消息都要由该对象的操作处理,其中的一个操作也可能要使用其他操作。如果类拥有状态图,还可根据内部转换以及外部转换上的动作,设计算法的详细逻辑。 可用自然语言或进行了一定结构化的自然语言描述算法,也可以使用程序框图或活动图描述算法。 在算法中还要考虑对例外和特殊情况的处理。如考虑对输入错误、来自中间件或其它软硬件的错误的消息以及其它例外情况的处理。 在系统较为复杂或需要处理大批量的数据的情况下,若系统在性能上有要求,就要对系统的体系结构和算法进行优化。 (8)决定对象间的可访问性(M) 从类A的对象到类B的对象有4种访问性 属性可见性:B是A的一个属性(关联、聚合) class A { … ;B b;…} 参数可见性:B的对象是A的一个方法的参数(依赖) A.amethod(B b) //间接地找到一个对象,并赋给b。 局部声明可见性:B的对象是在A的一个方法中声明的一个局部变量(依赖) class A::amethod { …; B b;…} 全局可见性:B的对象在某种程度上全局可见(依赖) 声明B的全局实例变量 对于后三种情况而言,从类A到类B间存在着依赖关系,在程序运行期间A的对象与B的对象存在着临时性的连接(临时链),而第一种情况中的链是由从类A到类B间的关联实例化而来的。 (9) 定义对象实例 在逻辑上,一个类是对一组对象的抽象描述。在物理上,一个类所创建的各对象,要么在内存中,要么在外存中。在内存中创建

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档