梳理並分解繼承體系

2022-04-01 09:18:03 字數 577 閱讀 8322

1.某個繼承體系同時承擔兩項責任:建立兩個繼承體系,並通過委託關係讓其中乙個可以呼叫另乙個。

2.動機:混亂的繼承體系是乙個嚴重的問題,因為它會導致重複**,還會是修改**變得困難,因為特定問題的解決策略被分散到了整個體系。

3.做法:a.首先識別出繼承體系所承擔的不同責任,然後建立乙個二維**,並以座標軸標出不同的任務;

b.判斷哪一項責任更重要些,並準備將它留在當前的繼承體系中。準備將另一責任移到另乙個繼承體系中;

c.使用extract class從當前的超類中提煉出乙個新類,用以表示重要性稍低的責任, 並在原超類中新增乙個例項變數,用以儲存新類的例項;

d.對應於原繼承體系中的每個子類,建立上述新類的乙個子類。在原繼承體系的子類中,將前一步所新增的例項變數初始化為新建子類的例項;

e.針對原繼承體系中的每個子類,使用move method將其中的行為搬移到與之對應的新建子類中;

f.當原繼承體系中的某個子類不再有任何**時,就將它去除;

g.重複以上步驟,直到原有繼承體系中的所有子類都被處理過為止。觀察新繼承體系,看是否有可能對它實施其他重構手法,如pull up method或pull up field

重構1 梳理並分解混亂的繼承體系

1.混亂的繼承體系是個嚴重的問題,因為它會導致重複的 而後者正是程式設計師生涯中的致命毒藥。2.這不是比我原先的classes數量還多嗎?難道它還能讓我的生活更舒服?生活中往往如此,以退為進,走得更遠。對乙個糾結成團的繼承體系來說,被提煉出來的另乙個繼承體系幾乎總是可以戲劇性地大量簡化。函式的重要性...

Zookeeper知識體系梳理

整理歸納知識,形成知識體系,是高效學習非常重要的乙個環節。高效的歸納總結,可以讓我們輕鬆統攬全域性,掌握知識。目錄1 zookeeper入門 2 安裝方式 3 zookeeper實戰 4 zookeeper內部原理 5 企業面試真題 1.1概訴 zookeeper 是乙個開源的分布式的,為分布式應用...

前端知識體系梳理

高頻考題 盒模型 動畫 css3 預處理器 sass less postcss.基礎其他題目 書籍推薦基礎 原型 繼承 事件流 事件委託 變數 作用域 閉包 this 上下文 事件迴圈 前端快取 正則 跨域 settimeout setinterval requestanimationframe 深...