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

19、20、22章 对象的可见性 可见性是对象引用其它对象的能力 可见性与范围,或者成为作用域问题有关: 某一资源是否在另一个资源的范围之内。 四种可见性 属性可见性:B是A的属性。 参数可见性:B是A中方法的参数。 局部可见性:B是A中方法的局部对象。 全局可见性:B具有某种方式的全局可见性。 属性可见性 当B作为A的属性时,则存在A到B的属性可见性。 参数可见性 当B作为参数传递给A的方法时,则存在A到B的参数可见性。 局部可见性 当B声明为A中方法的局部对象时,则存在A到B的局部可见性。 全局可见性 当B对于A是全局时,存在A到B的全局可见性 在某些语言,如C++中,实现全局可见性的一种方式是将实力分配给全局变量,这种方式在更纯的面向对象语言,如Java中不可行。 实现全局可见性的首选方法是使用单实例模式。 其它类型的可见性(作用域) 在多线程的应用中,需要有线程作用域。 对于Web应用,有Application/Session/Request/Page等作用域。 变量作用域的管理 尽可能缩小变量的作用域,缩短变量的存活时间, 变量存在的时间恰好等于系统需要该变量的时间 能够使得你对自己的代码有更加准确的认识 缩小作用域的方法 定义变量时,从最严格的可见性开始,然后根据需要扩展变量的作用域 把相关的语句提取成单独的子程序 变量作用域的管理 方便性和智力上的可管理性 全局变量使用时比较方便,无需考虑有关参数和作用域的有关规则 变量局部化的优点是能够提高智力上的可管理性:能够隐藏的信息越多,在同一时间所需要考虑的信息就越少。 将设计映射为代码 从UML图到代码之间存在转换过程 类和接口的定义 从DCD创建类和接口的定义 方法的定义 从交互图创建方法 根据类图中创建类的定义 根据交互图中创建方法 public void enterItem(ItemID itemID, int qty); 代码中的集合类 一对多的关系非常常见,这些关系通常使用集合(Collection)对象(例如List或Map)或者是简单的数组来实现。 定义Sale.makeLineItem方法 根据enterItem的协作图,还可以写出Sale类的makeLineItem方法。 实现的顺序 类的实现通常按照从耦合度低到耦合度高的顺序来完成。 重构 重构:重写或重新构建已有代码的结构化和规律性的代码 目标: 去除冗余的代码 改善清晰度 …… 重构样例: 提炼方法:将长方法转换为短方法 引入解释变量:将表达式的部分或完整结果置入临时变量,该变量的名字应该能够说明其目的。 重构的例子 public boolean isLeepYear1(int year) { return (year % 400) == 0 || ((year % 4 == 0) (year % 100 != 0)); } public boolean isLeepYear2(int year) { boolean isForthYear = (year % 4 == 0); boolean isHundrethYear = (year % 100 == 0); boolean is4HundrethYear = ((year % 400) == 0); return is4HundrethYear || (isForthYear !isHundrethYear); } UML工具与UML蓝图 UML作为草图 UML作为蓝图 UML作为编程语言 前向、逆向和双向工程 前向工程 从设计模型生成代码 逆向工程 从代码生成设计模型 双向工程 以上两种工程的闭环 UML图:工具还是手绘 大多数UML工具对使用UML造成的阻碍比其带来的帮助要多。 如果希望使用工具: 最好使用与IDE结合的UML工具 能够支持双向工程,特别是从代码生成序列图。 如果手绘: 首先绘制草图,实现代码 在开发至一定的阶段时,使用工具逆向生成最新的类图,打印并挂在开发场地的显眼处。 可见性的设计可以看作是范围的设计,对象的可见性应该放置于尽可能小的范围之内。 * * * 可见性的设计可以看作是范围的设计,对象的可见性应该放置于尽可能小的范围之内。 * * *

文档评论(0)

ailuojue + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档