●基本類型困擾(PrimitiveObsession)●數(shù)據(jù)類(DataClass)●數(shù)據(jù)泥團(tuán)(DataClump)●臨時(shí)字段(TemporaryField)...[繼續(xù)閱讀]
海量資源,盡在掌握
●基本類型困擾(PrimitiveObsession)●數(shù)據(jù)類(DataClass)●數(shù)據(jù)泥團(tuán)(DataClump)●臨時(shí)字段(TemporaryField)...[繼續(xù)閱讀]
癥狀請查看是否存在以下癥狀:●使用了基本類型或近基本類型(near-primitivetype)(int、float、String等等)●存在表示小整數(shù)的常量或枚舉●存在表示字段名的串常量原因造成基本類型的過度使用有多種原因:●缺少類(Missingclass):由于幾乎所...[繼續(xù)閱讀]
癥狀●類僅由公共數(shù)據(jù)成員組成,或者只由簡單的獲取方法和設(shè)置方法組成。這就使客戶要完全依賴于此類的可變性和表示。原因類通??赡苋缦抡Q生:你意識(shí)到某些數(shù)據(jù)是一個(gè)獨(dú)立對(duì)象的一部分,因此相應(yīng)地抽取出了一個(gè)類。這種情...[繼續(xù)閱讀]
癥狀●同樣的兩至三項(xiàng)頻繁地一同出現(xiàn)在類和參數(shù)表中。●代碼聲明了某些字段,并聲明了處理這些字段的方法,然后又聲明了更多的字段和更多的方法,如此繼續(xù)(也就是說,在類中同時(shí)存在成組的字段和方法)。●各組字段名以類似的...[繼續(xù)閱讀]
癥狀●字段僅在某些時(shí)候得到設(shè)置,而在其余時(shí)間內(nèi)為null(或未用)。原因?qū)ο笾械哪骋徊糠执嬖谝粋€(gè)算法,該算法要通過字段而非通過參數(shù)來傳遞信息,此時(shí)就會(huì)發(fā)生這種情況;這些字段僅在算法處于活動(dòng)狀態(tài)時(shí)才有效或得到使用。字段...[繼續(xù)閱讀]
癥狀●一個(gè)類繼承自其父類,但是拋出了一個(gè)異常而不是支持一個(gè)方法,此為坦率的拒絕(honestrefusal)。●一個(gè)類繼承自其父類,但是在對(duì)該類調(diào)用時(shí),某個(gè)所繼承的方法不能正常工作,此為隱式的拒絕(implicitrefusal)?!窨蛻粼噲D通過子類的...[繼續(xù)閱讀]
癥狀●一個(gè)類訪問了其父類的內(nèi)部(本應(yīng)是私有的)部分。(這與各類之間的不當(dāng)緊密性有關(guān);請參見第10章中的“不當(dāng)?shù)木o密性(一般形式)”)。原因相對(duì)于兩個(gè)陌生人來說,父類與子類之間當(dāng)然要親密一些。不過有時(shí)它們太過親密了(即過...[繼續(xù)閱讀]
癥狀●類并沒有做什么工作,似乎是由其父類、子類或是調(diào)用者完成了所有相關(guān)的工作,而在此類中卻沒有足夠的行為,以至于對(duì)其是否繼續(xù)存在會(huì)產(chǎn)生質(zhì)疑。原因一般來說,往往是因?yàn)?在重構(gòu)過程中,類的所有職責(zé)都已經(jīng)移至其他位置...[繼續(xù)閱讀]
●依戀情結(jié)(FeatureEnvy)●不當(dāng)?shù)木o密性(一般形式)[InappropriateIntimacy(GeneralForm)]●消息鏈(MessageChains)●中間人(MiddleMan)...[繼續(xù)閱讀]
癥狀●一個(gè)方法似乎過于強(qiáng)調(diào)處理其他類的數(shù)據(jù),而不是處理其自己的數(shù)據(jù)。(你可能會(huì)因重復(fù)性而注意到這一點(diǎn),即多個(gè)客戶在做同樣的處理,或者可能在同一行中多次看到同一個(gè)對(duì)象。)原因?qū)τ诋?dāng)前的數(shù)據(jù)類和原來的數(shù)據(jù)類,其客戶...[繼續(xù)閱讀]