![Avatar notebook default](https://cdn2.jianshu.io/assets/default_avatar/avatar-notebook-default-640f7dde88592bdf6417d8ce1902636e.png)
大型重構(gòu) 12.1 Tease Apart Inheritance (梳理并分解繼承體系) 某個(gè)繼承體系同時(shí)承擔(dān)兩項(xiàng)責(zé)任 建立兩個(gè)繼承體系, 并...
處理概括關(guān)系 即繼承關(guān)系 11.1 Pull Up Field (字段上移) 兩個(gè)子類擁有相同的字段 將該字段移至超類 11.2 Pull Up...
簡化函數(shù)調(diào)用 10.1 Rename Method (函數(shù)改名) 函數(shù)的名稱未能揭示函數(shù)的用途 修改函數(shù)名稱 將復(fù)雜的處理過程分解成小函數(shù), 小...
簡化條件表達(dá)式 9.1 Decompose Conditional (分解條件表達(dá)式) 你有一個(gè)復(fù)雜的條件表達(dá)式語句 從if,then,else...
重新組織數(shù)據(jù) 如果你看到一個(gè)數(shù)組的行為方式很像一個(gè)數(shù)據(jù)結(jié)構(gòu), 就可以使用 用對象取代數(shù)組 把數(shù)組變成對象, 從而使這個(gè)數(shù)據(jù)結(jié)構(gòu)更清晰的顯露出來....
決定把責(zé)任放在哪兒,即使不是最重要的事情, 也是最重要的事之一. Move Method和Move Field簡單地移動(dòng)對象行為. 如果這兩個(gè)重...
6.1 Extract Method (提煉函數(shù)) 將代碼放進(jìn)一個(gè)獨(dú)立函數(shù)中, 并讓函數(shù)名稱解釋該函數(shù)的用途 6.2 Inline Method...
別擔(dān)心, 我們并不是說你不該寫注釋. 從嗅覺上說, Comments不是一種壞味道,實(shí)際上它們還是一種香氣呢, 我們之所以要在這里提到Comme...
子類應(yīng)該繼承超類的函數(shù)和數(shù)據(jù). 但如果它們不想或不需要繼承, 又該怎么辦呢? 它們得到所有禮物, 卻只從中挑選幾樣來玩. 按傳統(tǒng)說法, 這就意...