Java语言程序设计 教学课件 作者 于红 第6章_实用类与类的设计.pptVIP

Java语言程序设计 教学课件 作者 于红 第6章_实用类与类的设计.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文档。上传文档
查看更多
7)设计方案的审查与重构   如果说,前述每个方法的推理和设计都具备合理性的话,那么,类的整体设计方案则不一定是合理有效的,尽管这里讨论的是单类的设计问题,也需要进行如下多方面的分析: 方法结构的合理性——结构简明有效、逻辑清晰。 方法接口的健壮性——即使将来方法的实现方式有所不同,方法接口也可以保持不变。 方法实现的外部独立性——一个方法的实现要尽可能与本类的细节保持高相关性,也要尽可能降低与外部类的耦合性,特别体现在对参数类的细节访问上尽可能要少。 方法间的有效重用——提高方法内部的设计效率。 方法、成员变量等的修饰符的合理使用——考察可见性、静态、终止、抽象等修饰的合理安排。 类实例化的价值、被继承的价值、实例化的数量、实例化的成功与失败、加载与卸载环节的特殊需求等。 临界资源分析——考察线程安全性并选择合理的并发方案。 探讨整个类有没有进行进一步抽象或分离的必要——设计过程是一个推理演化的过程,超类抽象、接口抽象、类的分离(然后再组合)可能都会在类的审查重构时候发生。 8)对类进行充分的测试    在测试驱动模式下,设计的过程也是测试的过程,这样不仅能够有效地完成设计,也会促使类的编程接口更加友好。一般情况下,可以针对每个事物类编写一个甚至多个测试类,这些测试类,也可以作为事物类的应用实例。 2. 单词分解类    在简单地进行程序设计的情况下,单词分解可能是一个很简单的问题,如Copyright(C) 2010 XXX.这一句话分解的结果是Copyright、C、2010、XXX共四个单词,如果用程序来表达,下面的一段代码可以完成单词分解的功能:    public class analyzer{     public static void main(String[] args) {     String sentence=Copyright(C) 2010 XXX.; //原始句子     String separator= ,;().; //分隔符     int i, j;     i=0;     while(isentence.length()){//循环流程:跳过连续的分隔符,取出一个单词     if (separator.indexOf(sentence.charAt(i))=0) {++i; continue;} //跳过连续的分隔符     j=i; //当前字符一定是一个单词的开始     while (isentence.length() separator.indexOf(sentence.charAt(i))==-1) ++i; //跳过单词到下一个分隔符或者字符串结束     System.out.println(sentence.substring(j,i)); //取出一个单词     }     }    }   上述代码中有效的内容不过10行左右,但是这样进行程序设计,仅仅是完成了一次查找和输出过程,不仅可能没有完成任务,甚至是做了不该做的事情,难于满足使用者(程序员)的要求,因而可复用的价值很低。实际的需求可能就是“设计一个单词分解类”,[语意不清,请核对]但如果能够仔细研究一下,从满足各种可能的用户期望的角度考虑,再充分考虑代码的可复用性以及对象的重用性,那么如下的类的设计描述(API形式)也仅能反映出部分需求: public class analyzer{     private String sentence; //原始句子     private String[] identifier; //单词(此处使用数组而不是ArrayList等类型,增加一点实现上的难度)     private String separator= ,;; //分隔符     private int sPos=0;         public analyzer(String sen, String sep); //构造方法,构造时完成分解     public void setSentence(String s); //更改句子的方法,在更改的过程中也完成分解     public void setSeparator(String s); //更改分隔符的方法,在更改的过程中也完成分解     private void make(); //分解方法     public String getString(int pos); //取出指定序

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档