- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
重构方法介绍:引入参数对象(3) 你常会看到特定的数组参数总是一起被传递。可能有好几个函数都使用这一组参数,这些函数可能隶属同个class,也可能隶属不同的classes。这样一组参数就是所谓的data Clump(数据泥团),我们可以运用一个对象包装所有这些数据,再以该对象取代它们。哪伯只是为了把这些数据组织在一起,这样做也是值得的。本项重构的价值在于缩短了参数列的长度,而你知道,过长的参数列总是难以理解的。此外,新对象所定义的访问函数还可以使代码更具一致性,这又进一步降低了代码的理解难度和修改难度。 本项重构还可以带给你更多好处。当你把这些参数组织到起之后,往往很快可以发现一些「可被移至新建class」的行为。通常,原本使用那些参数的函数对那些参数会有一些共通措施,如果将这些共通行为移到新对象中,你可以减少很多重复代码 * 精品PPT | 借鉴参考 重构方法介绍:函数迁移(1) public class RepUtilFunc { private List initFundList(…) { …. this.copyFundView(fView,planView); //汇总投资计划数据 … } private void copyFundView (FundView fView,PlanView planView){ fView.setFund(fView.getFund()+planView.getFund()); fView.setUpprefund(fView.getUpprefund()+planView.getUpprefund()); fView.setDownprefund(fView.getDownprefund()+planView.getDownprefund()); } } public class RepUtilFunc { private List initFundList(…) { …. fView.copyFundView(planView); //汇总投资计划数据 … } } * 精品PPT | 借鉴参考 重构方法介绍:函数迁移(2) public class FundView { private double fund; private String upprefund; private String downprefund; …getset方法 } public class FundView { private double fund; private String upprefund; private String downprefund; …getset方法 public void copyFundView (PlanView planView){ this.setFund(this.getFund()+planView.getFund()); this.setUpprefund(this.getUpprefund()+planView.getUpprefund()); this.setDownprefund(this.getDownprefund()+planView.getDownprefund()); } } * 精品PPT | 借鉴参考 重构方法介绍:函数迁移(3) 「函数迁移」是重构理论的支柱。如果一个class有太多行为,或如果一个class与另一个class有太多合作而形成高度耦合,我就会迁移函数。通过这种手段,我可以使系统中的classes更简单,这些classes最终也将更干净利落地实现系统交付的任务。常常我会浏览class的所有函数,从中寻找这样的函数,使用另一个对象的次数比使用自己所驻对象的次数还多,就会进行函数迁移。 * 精品PPT | 借鉴参考 重构方法介绍:将过程化设计转换为面向对象设计 有时间的话用一个实际例子进行展示。 * 精品PPT | 借鉴参考 四、测试驱动开发方法简介 测试驱动开发(Test Driven Development,英文缩写TDD)是极限编程的一个重要组成部分,它的基本思想就是在开发功能代码之前,先编写代码的单元测试用例。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试用例的编写,然后编写相关的代码满足这些测试用例。循环进行添加其他功能,直到完成全部功能的开发。代码整洁可用(clean code that works) 是测试驱动开发所追求的目标。 * 精品PPT | 借鉴参考 测试驱动开发优点(1) 需求向来就是软件开发过程中感觉最不好明确描述、易变的东西。这里说的需求不只是指用户的需求,还包括对代码的使用需求。很多开发人员最害怕的就是后期还要修改某个
您可能关注的文档
- 如何制作绘本[宣讲].ppt
- 如何制作精美的[宣讲].ppt
- 如何制作书签[宣讲].ppt
- 如何制作图表[宣讲].ppt
- 如何抓住客户痛点-HR篇[宣讲].ppt
- 如何撰写教育部人文社科项目课题申报书[宣讲].ppt
- 如何自我成长与提升[宣讲].ppt
- 如何组织高效会议[宣讲].ppt
- 如何组织开展好专题组织生活会[宣讲].ppt
- 如何做到成功的会议营销[宣讲].ppt
- 高考是生物一轮复习 核酸.pptx
- 第13课 现代战争与不同文化的碰撞和交流(课件)高二历史下册课件(选择性必修3).pptx
- 《英语》(新标准)小学修订版三年级下册Unit 1分层教学设计.docx
- 《英语》(新标准)小学修订版三年级下册Unit 6分层教学设计.docx
- 《英语》(新标准)小学修订版三年级下册Unit 2分层教学设计.docx
- 《英语》(新标准)小学修订版三年级下册Unit 3分层教学设计.docx
- 《英语》(新标准)小学修订版三年级下册Unit 5分层教学设计.docx
- 2.3.3 真菌(第二课时)七年级生物上册课件(人教版2024).pptx
- 《英语》(新标准)小学修订版三年级下册Unit 4分层教学设计.docx
- 6.3价值的创造和实现 高中政治课件.pptx
原创力文档


文档评论(0)