面向对象软件重构

面向对象软件重构

ID:44874870

大小:182.19 KB

页数:4页

时间:2019-11-01

面向对象软件重构_第1页
面向对象软件重构_第2页
面向对象软件重构_第3页
面向对象软件重构_第4页
资源描述:

《面向对象软件重构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、维普资讯http://www.cqvip.com华奇兵,等:面向对象软件重构·97·得到更好的复用性。这时,可以使用重构对已有的代现该软件的一个类Customer。该类主要完成客户付码与设计进行重构,抽取可复用单元。费的计算。下面是该类的主要代码:doubleCustomer::chargeFor(Datestart,Dateend)(2)使软件得到更好的维护性。与软件复用紧{密相连的是软件的可维护性,软件的维护性是软件return(end—start)rentingPrice:工程中最棘手的一个方面,在软

2、件生命周期中,大量)的时间被用于软件的维护。研究表明,目前软件的维voidCustomer::createBill(Datedate)护费用大约占整个开发过程中的609/6以上L4]。在对{软件维护进行研究的过程中,人们提出了软件熵的doublechargeAmount—chargeFor(1astBillDate,Date);概念。所谓软件熵是一个程序从设计很好的状态开addBill(date,chargeAmount);)始,随着新的功能不断地加入,程序逐渐地失去了原Customer有的结构,最终变成了

3、一团乱麻的过程的反映。为了——renfingPrice:double使软件得到更好的维护,需要对已有的代码与设计lastBillDate:Date进行重构。#chargeFor(DatestartDate,DateendDate)ldouble—addBiU(Datedate.doubleamount):void(3)代码呈现一定的代码味道(codesmells)。+createBiU(Datedate):voldKentBeck和MartinFowler指出,当你的代码呈现图1Customer类图Fig.

4、1agramofcustomerclass一定的代码味道(codesmells)的时候,通常意味着这个类在开始的时候工作得很好。但在某一天,代码需要进行重构。代码味道是经验丰富的高级软VCD/DVD出租店的老板开展了新的业务,提出了件设计与开发人员的一种直觉,下面是一些常见的新的需求,要求将客户分成2种类型:一种是会员客代码味道(codesmells)。·户,一种是一般客户。这样,VCD/DVD出租店可以重复代码(duplicatecode)。代码重复几乎是根据不同的类型的客户,实行不同的收费策略,针对最常

5、见的代码味道,这是重构的最主要的原因。代码会员客户打七折。这样,需要对原有的VCD/DVD重复往往来自于copy—and—paste的编程风格。·长方法(1ongmethod)。通常一个方法应该出租管理软件程序进行更新以满足新的需求。下面是更新该程序的几种不同的方法。具有很强的内聚性,如当一个方法只完成一个任务,就具有很强的内聚性。方法的内聚性是指在一个方方法1:直接修改。这种方法是直接修改原代码。法中,各种操作之间相互联系的程序,通常使方法具这是一种最直接的方法,在实践当中,程序员经常用有强内聚性的一个好

6、处是可以提高程序的可靠这种方法对程序进行修改。随着时间的推移及软件性。的进一步演化,这种直接修改的方法会使程序的结·大类(1argeclass)。一个很大的类通常是把构变得越来越难以维护及扩展。很多不太相关的职责交给了一个类而形成的,通常方法2;拷贝与粘贴。这种方法首先将Customer表明类具有很弱的内聚性。一个具有弱内集性的类重命名为guestCustomer,接着拷贝guestCustomer通常存在难以理解、难以复用、难以维护、容易受到的代码形成一个新的类memberCustomer,然后修改外界所

7、发生的细微变化的影响等问题,通常代表了memberCustomer类中的chargeFor方法以支持新一个“大粒度”的抽象,或者承担了应该分配给别的的需求。这样的结果是guestCustomer与对象的职责]。memberCustomer两个类的绝大部分的代码是相同(4)需求发生变化,而发现原有的代码与设计的。这种方法也是在具体的实践中经常用到的一种增加新的功能发生困难。需求总是会随着时间发生方法,但是使用这种方法的直接结果是具有大量重变化。在现实生活中,经常会出现这样的情况,当需复的代码,这将给维护人员带

8、来极大的不便,往往造求发生变化的时候,就要求对原有的代码与设计进成“牵一发而动全身”的后果。行改变,而此时发现原有的代码与设计很难再加进方法3:直接改变结构。这种方法直接对程序的新的功能或是在加进新的功能的时候,出现代码急结构进行修改从而使程序随着不断的演化仍保持着剧变坏的现象,此时我们就需要对原有的代码与设比较好的结构。但是在实际中使用这种直接改变结计进行重构,以使其容易被扩展。构的方法通常比较困难,也容易出错

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。