重構之在物件之間搬移特性

2021-04-02 17:40:21 字數 991 閱讀 6376

1.move method

(搬移函式)

你的程式中,有個函式與其所駐

class

之外的另乙個

class

2.move field

(搬移值域) 在

target class

建立乙個

new field

,修改source field

的所有使用者,令它們改用

new field。

3.extract class

(提煉類)

建立乙個新

class

,將相關的值域和函式從舊

class

搬移到新

class。

4.inline class

(將類內聯化) 將

class

的所有特性搬移到另乙個

class

中,然後移除原

class。

5.hide delegate

(隱藏[

委託關係])

在某個

class

建立的客戶所需的所有函式,用以隱藏委託關係(

delegation)。

6.remove middle man

(移除中間人)

讓客戶直接呼叫

delegate(

委託類)。

7.introduce foreign method

(引入外加函式) 在

client

類中建立乙個函式,並以乙個

server

類實體作為第一

argument。

8.introduce local extension

(引入本地擴充套件)

建乙個新

class

,使它包含這些額外函式。讓這個擴充套件成為

source class

的subclass

(子類)或

(外覆類)。

重構手法之在物件之間搬移特性 2

返回總目錄 本小節目錄 某個類做了應該由兩個類做的事。建立乙個新類,將相關的字段和函式從舊類搬移到新類。如果乙個類中有大量的函式和資料,這個類往往太大而且不易理解。這時候就需要考慮哪些部分可以分離出去,並將它們分離到乙個單獨的類中。如果發現子類化只影響類的部分特性,或如果某些特性需要以一種方式來子類...

重構 在物件之間搬移特性

1 move method 搬移函式 有個函式與所在類之外的另乙個類進行更多的交流 呼叫或被呼叫 在該函式最常引用的類中建立乙個有著類似行為的新函式。將舊函式變為乙個單純的委託函式,或者將舊函式刪除。2 move field 搬移字段 某個欄位被其所屬類之外的另乙個類頻繁呼叫。3 extract c...

重構 在物件之間搬移特性

你的程式中,有個函式與其所駐類之外的另乙個類進行更多交流 呼叫後者,或被後者呼叫 則在該函式最常引用的類中建立乙個有著類似行為的新函式,將舊函式變成乙個單純的委託函式,或是將舊函式完全移除。動機 如果乙個類有太多行為,或如果乙個類與另乙個類有太多合作而形成高度耦合,就使用搬移函式,通過這種手段,可以...