- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
27-高质量编程的代码结构二揭开自文档代码的奥秘本章内容高质量方法内聚和耦合正确使用变量范围,跨度,寿命正确使用表达式使用常量正确使用控制流逻辑条件语句循环本章内容防御式编程断言和异常注释和文档自文档代码代码重构提高已有代码的质量高性能方法如何设计和实现高性能方法?理解内聚和耦合为什么我们需要方法?方法在软件开发中很重要减少复杂度divide and conquer分而治之:复杂问题能够分割为一些简单的成分提高代码可读性有良好方法名的小方法,构造的代码是自文档的避免重复代码重复代码很难维护为什么我们需要方法?Bank.accounts[customer].deposit(500);方法简化了软件开发隐藏了实现细节复杂逻辑被封装并在简单接口前隐藏算法和数据结构被隐藏,并能随后透明的替换增加抽象等级方法定位于商业问题,而不是技术实现使用方法-基础一个方法应该做它名字所述,或指出一个错误。任何其他行为都是不正确的!正确的方法使用基本原则方法应该准确的做它名字所述什么都不要少什么也别多如果发生不正确的输入或不正确的预处理,一个错误应该被指出好的方法-示例long Sum(int[] elements){ long sum = 0; foreach (int element in elements) { sum = sum + element; } return sum;}double CalcTriangleArea(double a, double b, double c){ if (a = 0 || b = 0 || c = 0) { throw new ArgumentException(边应当为正数。); } double s = (a + b + c) / 2; double area = Math.Sqrt(s * (s - a) * (s - b) * (s - c)); return area;}错误方法的症状方法做一些不同于它名字的事情,是错误的,其至少一系列的原因有:方法有时候返回不正确结果 - bug方法返回不正确输出,当其输入是不正确或非正常 - 低质量只能被私有方法接受方法做了太多事情 - 差内聚方法有副作用 - 意大利面式代码方法返回奇怪的值当错误条件发生 - 应指出错误错误方法-示例long Sum(int[] elements){ long sum = 0; for (int i = 0; i elements.Length; i++) { sum = sum + elements[i]; elements[i] = 0; } return sum;}隐藏副作用double CalcTriangleArea(double a, double b, double c){ if (a = 0 || b = 0 || c = 0) { return 0; } double s = (a + b + c) / 2; double area = Math.Sqrt(s * (s - a) * (s - b) * (s - c)); return area;}不正确结果,抛出一个异常取代强内聚方法应该有strong cohesion强内聚应投入单一任务并良好解决应有清晰的意图投身于多任务的方法在同一时间难以命名字符串内聚用于工程在计算机硬件中,PC组件解决单一任务如:硬盘执行单一任务-存储可接受内聚的类型(1)Math.Sqrt(value) ? square rootChar.IsLetterOrDigit(ch)String.Substring(str, startIndex, length)函数式内聚(独立函数)方法执行确定的良好定义的计算,并返回单一结果全部输入通过参数传递,全部输出作为结果返回没有外部依赖或副作用示例:可接受内聚的类型(2)SendEmail(recipient, subject, body)序列式内聚(算法)方法执行了确定的操作序列,执行单一任务并完成确定的结果封装了算法示例:连接邮件服务器发送头消息发送消息主体断开服务器可接受内聚的类型(3)通信式内聚(通用数据)用于处理确定数据并产出结果的操作集合示例:从数据库中检索输入数据通过检索数据执行内部计算建立报表格式化报表为Excel工作表显示Excel工作表至屏幕DisplayAnnualExpensesReport(int employeeId)可接受内聚的类型(4)InitializeApplication()ButtonConfirmClick()暂时性内聚(时间相关的活动)操作通常并不相关,但需要在确定时间发生示例:加载用户设置检查更新从数据库加载所有发票动作序列来处理事件不可接受的内聚object ReadAll(int op
您可能关注的文档
最近下载
- 2025年妇女儿童发展规划实施情况中期评估报告 .pdf VIP
- 智慧农业导论-第9章-智慧农业系统案例 - 复件.pptx VIP
- 2025年过敏性鼻炎患者疾病认知与管理蓝皮书-腾讯新闻.pdf
- 汽车制造物流技术课件:认识汽车制造物流技术.pptx VIP
- 幼儿园中班语言《萝卜回来了》教学课件精品PPT学前班儿童优秀公开课.ppt VIP
- 控制电缆技术规范书.docx VIP
- 人教版《劳动教育》七上 劳动项目九《体验快递派送》课件.ppt VIP
- 2022中国幽门螺杆菌感染治疗指南.pptx VIP
- 考试高科技无线电作弊技术装备图解手册.docx VIP
- 《基于PLC的自动门控制系统设计》-毕业论文.doc VIP
有哪些信誉好的足球投注网站
文档评论(0)