- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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); //取出指定序
您可能关注的文档
- Java语言程序设计 教学课件 作者 汪远征 周巧婷 ch2.ppt
- Java语言程序设计 教学课件 作者 汪远征 周巧婷 ch3.ppt
- Java语言程序设计 教学课件 作者 汪远征 周巧婷 ch4.ppt
- Java语言程序设计 教学课件 作者 汪远征 周巧婷 ch5.ppt
- Java语言程序设计 教学课件 作者 汪远征 周巧婷 ch6.ppt
- Java语言程序设计 教学课件 作者 汪远征 周巧婷 ch7.ppt
- Java语言程序设计 教学课件 作者 汪远征 周巧婷 ch8.ppt
- Java语言程序设计 教学课件 作者 汪远征 周巧婷 ch9.ppt
- Java语言程序设计 教学课件 作者 汪远征 周巧婷 ch10.ppt
- Java语言程序设计 教学课件 作者 汪远征 周巧婷 ch11.ppt
- Java语言程序设计 教学课件 作者 于红 第7章__Java异常处理.ppt
- Java语言程序设计 教学课件 作者 于红 第8章__IO流.ppt
- Java语言程序设计 教学课件 作者 于红 第9章_多线程.ppt
- Java语言程序设计 教学课件 作者 于红 第10章_图形用户界面.ppt
- Java语言程序设计 教学课件 作者 于红 第11章_网络编程.ppt
- Java语言程序设计 教学课件 作者 于红 第12章_数据库编程.ppt
- Java语言程序设计 教学课件 作者 于红 第13章_编程实例.ppt
- Java语言程序设计 教学课件 作者 于红.doc
- Java语言程序设计 作者 李尊朝 苏军 第1章.ppt
- Java语言程序设计 作者 李尊朝 苏军 第2章.ppt
文档评论(0)