软件配置管理课件:第2章 常用重构技巧.ppt

软件配置管理课件:第2章 常用重构技巧.ppt

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

简化函数调用以函数取代参数(ReplaceParameterwithMethod)对象调用某个函数,并将所得结果作为参数,传递给另一个函数。而接受该参数的函数本身也能够调用前一个函数。让参数接受者去除该项参数,并直接调用前一个函数。intbasePrice=_quantity*_itemPrice;discountLevel=getDiscountLevel();doublefinalPrice=discountedPrice(basePrice,discountLevel);intbasePrice=_quantity*_itemPrice;doublefinalPrice=discountedPrice(basePrice);简化函数调用引入参数对象(IntroduceParameterObject)某些参数总是很自然地同时出现。以一个对象取代这些参数。简化函数调用移除设值函数(RemoveSettingMethod)类中的某个字段应该在对象创建时被设值,然后就不再改变。去掉该字段的所有设值函数。重新组织数据以对象取代数据值(ReplaceDataValuewithObject)你有一个数据项,需要与其他数据和行为一起使用才有意义。将数据项变成对象。重新组织数据将值对象改为引用对象(ChangeValuetoReference)你从一个类衍生出许多彼此相等的实例,希望将它们替换为同一个对象。将这个值对象变成一个引用对象。重新组织数据将引用对象改为值对象(ChangeReferencetoValue)你有一个引用对象,很小且不可变,而且不易管理。将它变成一个值对象。重新组织数据以对象取代数组(ReplaceArraywithObject)你有一个数组,其中的元素各自代表不同的东西。以对象替换数组。对于数组中的每个元素,以一个字段来表示。String[]row=newString[3];row[0]=Liverpool;row[1]=15;Performancerow=newPerformance();row.setName(Liverpool);row.setWins(15);重新组织数据复制“被监视数据”(DuplicateObservedData)你有一些领域数据置身于GUI控件中,而领域函数需要访问这些数据。将这些数据复制到一个领域对象中。建立一个Observer模式,用以同步领域对象和GUI对象内的重复数据。重新组织数据将单向关联改为双向关联(ChangeUnidirectionalAssociationtoBidirectional)两个类都需要使用对方的特性,但其间只有一条单向连接。添加一个反向指针,并使修改双方关系的函数能够同时更新两条连接。重新组织数据将双向关联改为单向关联(ChangeBidirectionalAssociationtoUnidirectional)两个类之间有双向关联,但其中一个类如今不再需要另一个类的特性。去除不必要的关联。重新组织数据以字面常量取代魔法数(ReplaceMagicNumberwithSymbolicConstant)你有一个字面数值,带有特别含义。创造一个常量,根据其意义为它命名,并将上述的字面数值替换为这个常量。doublepotentialEnergy(doublemass,doubleheight){returnmass*9.81*height;}doublepotentialEnergy(doublemass,doubleheight){returnmass*GRAVITATIONAL_CONSTANT*height;}staticfinaldoubleGRAVITATIONAL_CONSTANT=9.81;重新组织数据封装字段(EncapsulateField)你的类中存在一个public字段。将它声明为private,并提供相应的访问函数。publicString_name;privateString_name;publicStringgetName(){return_name;}publicvoidsetName

文档评论(0)

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

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

1亿VIP精品文档

相关文档