開心一笑
【一孩子數(shù)學成績不好熬尺,有次考試只考了8分,為了不挨揍他偷偷地加了一個0谓罗,回家后老媽看著我的試卷問他:“你是不是改分數(shù)了粱哼?”他理直氣壯地說沒有,老媽邊揍邊罵:“讓你考個08分檩咱,讓你考個08分皂吮〗渖担”】
提出問題
項目中如何處理代碼之間括號關系(繼承關系)???
解決問題
以下來自《重構》這本書的筆記,由于本章相對比較簡單蜂筹,都是書本原話需纳,可查看書籍學習相關實例。
Pull Up Field(字段上移)
兩個子類擁有相同的字段艺挪,將該字段移至超類不翩。
Pull Up Method(函數(shù)上移)
有些函數(shù),在各個子類中產(chǎn)生完全相同的結(jié)果麻裳,將該函數(shù)移至超類口蝠。
Pull Up Constructor Body(構造函數(shù)本體上移)
你在各個子類中擁有一些構造函數(shù),它們的本體幾乎完全一致津坑。在超類中建一個構造函數(shù)妙蔗,并在子類構造函數(shù)中調(diào)用它。
Push Down Method(函數(shù)下移)
超類中的某個函數(shù)只與部分子類有關疆瑰。將這個函數(shù)移動到相關的那些子類去眉反。
Push Down Field(字段下移)
超類中的某個字段只被部分(而非全部)子類用到。將這個字段移到需要它的那些子類去穆役。
Extract Subclass(提煉子類)
類中的某些特性只被某些(而非全部)實例用到寸五。新建一個子類,將上面所說的那一部分特性移動到子類中耿币。
Extract Superclass(提煉超類)
兩個類有相似特性梳杏。為這兩個類建立一個超類,將相同特性移至超類淹接。
Extract Interface(提煉接口)
若干客戶使用類接口中的同一個子集十性,或者兩個類的接口有部分相同。將相同的子集提煉到一個獨立接口中塑悼。
Collapse Hierarchy(折疊繼承體系)
超類和子類之間無太大區(qū)別烁试。將它們合為一體。
Form Template Method(塑造模版函數(shù))
你有一些子類拢肆,其中相應的某些函數(shù)以相同順序去執(zhí)行類似的操作减响,但各個操作的細節(jié)上有所不同,將這些操作分別放進獨立函數(shù)中郭怪,并保持它們都有相同的簽名支示,于是原函數(shù)也就變得相同的,然后將原函數(shù)上移至超類中鄙才。
Replace Inheritance with Delegation(以委托取代繼承)
某個子類只使用超類接口中的一部分颂鸿,或者根本不需要繼承而來的數(shù)據(jù),在子類中新建一個字段攒庵,用于保存超類嘴纺,調(diào)整子類函數(shù)败晴,令它改為委托超類,然后去掉兩者之間的繼承關系栽渴。
Replace Delegation with Inheritance(以繼承取代委托)
你在兩個類之間使用委托關系尖坤,并經(jīng)常為整個接口編寫許多極簡單的委托函數(shù),讓委托類繼承受托類闲擦。
讀書感悟
來自《喜寶》
- 如果有人用鈔票扔你慢味,跪下來,一張張拾起墅冷,不要緊纯路,與你溫飽有關的時候,一點點自尊不算什么寞忿。
- 好家庭的孩子多數(shù)天真得離譜的驰唬。
- 我最怕別人為我犧牲,凡是用到這種字眼的人腔彰,事后都要后悔的叫编,將來天天有一個人向我提著當年如何為我犧牲,我受不了萍桌。
- 喜寶說:“我一直希望得到很多愛。如果沒有愛凌简,很多錢也是好的上炎。如果兩者都沒有,我還有健康雏搂。我其實并不貧乏藕施。
- 當一個男人喜歡一個女人的時候,他可以為她做一切事凸郑。
- 有能力的人影響別人裳食,沒能力的人受人影響。
其他
如果有帶給你一絲絲小快樂芙沥,就讓快樂繼續(xù)傳遞下去诲祸,歡迎轉(zhuǎn)載,點贊而昨,頂救氯,歡迎留下寶貴的意見,多謝支持歌憨!