重構 - 改善既有程式的設計 - Divergent Change
April 13, 2020這篇文章討論《重構 - 改善既有程式的設計》裡的3.5 - Divergent Change
圖片以及程式碼來源自重構 - 改善既有程式的設計
發散式變化
如果一個類別經常因為不同的原因而在不同的方向上發生變化 就需要重構
沒錯 就是單一職責原則
解法
來聊聊常見的解法
Extract Class
分離類別 讓每個類別只有單一職責
Extract SuperClass/Extract SubClass
善用繼承達到code reuse
比較
跟散彈式修改的差別如下
發散式變化 指的是一個類別會受到多種變化的影響
散彈式修改 指的是一個變化會影響到多個類別