freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

如何提高產(chǎn)品開發(fā)品質(zhì)(編輯修改稿)

2025-03-10 13:33 本頁面
 

【文章內(nèi)容簡介】 許多地點(diǎn)出現(xiàn),那么使用多態(tài)的收益是最大的。使用條件式時(shí),如果你想添加一種新型別,就必須杳找并更新所有條件式。但如果改用多態(tài),只需建一個(gè)新的 subclass并在其中提供適當(dāng)?shù)暮瘮?shù)就行了。 class用戶不需要了解這個(gè) subclass,這就大大降低了系統(tǒng)各部分之間的耦合程度,使系統(tǒng)升級 .更加容易。 重構(gòu)方法介紹:以委托取代繼承(1) //繼承解決方案 public classBusPlanManagerServiceImpl { public void setPlanState (int planYear,int itemId,int dataType) {…. 更新建議計(jì)劃狀態(tài)方法 } public void savePlan (int planYear,int itemId,int dataType) {… 保存建議計(jì)劃數(shù)據(jù)方法 } } public class PrePlanService extends BusPlanManagerServiceImpl .. public class ColPlanService extends BusPlanManagerServiceImpl .. public class AftPlanService extends BusPlanManagerServiceImpl .. //委托解決方案 public classBusPlanManagerServiceImpl { public void setPlanState (int planYear,int itemId,int dataType){ PlanUtil planUtil = PlanUtil .create(dataType)。 //調(diào)用更新計(jì)劃狀態(tài)的方法 (year,itemId,dataType)。 } public void savePlan (int planYear,int itemId,int dataType){ PlanUtil planUtil = PlanUtil .create(dataType)。 //調(diào)用更新計(jì)劃狀態(tài)的方法 planUtil. savePlan (year,itemId,dataType)。 } } 重構(gòu)方法介紹:以委托取代繼承(2) ? 繼承是一件很棒的事,但有時(shí)候它并不是你要的。常常你會遇到這樣的情況 :一開始你繼承了一個(gè) class ,隨后發(fā)現(xiàn)superclass中的許多操作井不真正適用于 subclass。這種情況下你所擁有的接口并末真正反映出 class的功能?;蛘撸憧赡馨l(fā)現(xiàn)你從 superclass中繼承了一大堆 subclas并不需要的數(shù)據(jù),抑或者你可能發(fā)現(xiàn) superclass中的某些protected函數(shù)對 subclass并沒有什么意義。 ? 你可以選擇容忍,并接受傳統(tǒng)說法: subclass可以只使用superclas、功能的一部分。但這樣做的結(jié)果是:代碼傳達(dá)的信息與你的意圖南轅北轍,這是一種混淆,你應(yīng)該將它去除。如果以委托取代繼承,你可以更清楚地表明 :你只需要受托類的一部分功能。接口中的哪一部分應(yīng)該被使用,哪一部分應(yīng)該被忽略,完全由你主導(dǎo)控制。這樣做的成本則是需耍額外寫出委托函數(shù),但這些函數(shù)都非常簡單,極少可能出錯(cuò)。 重構(gòu)方法介紹:引入?yún)?shù)對象 (1) public List getYearPlanList (String operatorID, String planYear,String iSeason, String planType,String dataType).. public List getLastYearPlanList (String operatorID, String planYear,String iSeason, String planType,String dataType) public void fillPlanData (String operatorID, String planYear,String iSeason, String planType,String dataType) { PlanData planData=new PlanData()。 (getYearPlanList (operatorID,planYear, iSeason,planType,dataType))。 (getLastYearPlanList (operatorID,planYear, iSeason,planType,dataType))。 } public class PlanParamObj { private String operatorID。 private String planYear。 private String iSeason。 private String planType,。 private String dataType。 public PlanParamObj (String operatorID, String planYear,String iSeason, String planType,String dataType) { =operatorID。 =planYear。 =iSeason。 =planType。 =dataType。 } } 重構(gòu)方法介紹:引入?yún)?shù)對象 (2) public List getYearPlanList (PlanParamObj paramObj).. public List getLastYearPlanList (PlanParamObj paramObj).. public void fillPlanData (String operatorID, String planYear,String iSeason, String planType,String dataType) { PlanParamObj paramObj = new PlanParamObj (operatorID,planYear, iSeason,planType,dataType)。 PlanData planData=new PlanData()。 (getYearPlanList (paramObj))。 (getLastYearPlanList (paramObj ))。 } 重構(gòu)方法介紹:引入?yún)?shù)對象 (3) ? 你常會看到特定的數(shù)組參數(shù)總是一起被傳遞??赡苡泻脦讉€(gè)函數(shù)都使用這一組參數(shù),這些函數(shù)可能隸屬同個(gè) class,也可能隸屬不同的 classes。這樣一組參數(shù)就是所謂的data Clump(數(shù)據(jù)泥團(tuán) ),我們可以運(yùn)用一個(gè)對象包裝所有這些數(shù)據(jù),再以該對象取代它們。哪伯只是為了把這些數(shù)據(jù)組織在一起,這樣做也是值得的。本項(xiàng)重構(gòu)的價(jià)值在于縮短了參數(shù)列的長度,而你知道,過長的參數(shù)列總是難以理解的。此外,新對象所定義的訪問函數(shù)還可以使代碼更具一致性,這又進(jìn)一步降低了代碼的理解難度和修改難度。 ? 本項(xiàng)重構(gòu)還可以帶給你更多好處。當(dāng)你把這些參數(shù)組織到起之后,往往很快可以發(fā)現(xiàn)一些「可被移至新建 class」的行為。通常,原本使用那些參數(shù)的函數(shù)對那些參數(shù)會有一些共通措施,如果將這些共通行為移到新對象中,你可以減少很多重復(fù)代碼 重構(gòu)方法介紹:函數(shù)遷移 (1) public class RepUtilFunc { private List initFundList(…) { …. (fView,planView)。 //匯總投資計(jì)劃數(shù)據(jù) … } private void copyFundView (FundView fView,PlanView planView){ (()+und())。 (()+pla())。 (()+())。 } } public class RepUtilFunc { private List initFundList(…) { …. (planView)。 //匯總投資計(jì)劃數(shù)據(jù) … } } 重構(gòu)方法介紹: 函數(shù)遷移 (2) public class FundView { private double fund。 private String upprefund。 private String downprefund
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1