如果一個類別只做一個動作,就是把任務委派給其他類別,那這個類別需要存在嗎?
物件導向的其中一個特色是封裝(對外面世界隱藏內部細節),而封裝往往會伴隨著委派。而過度委派的情況下,就走歪了。
其他可能原因也有,當某個類別的任務漸漸搬移到其他類別時,原本類別到最後就會變成一個只委派任務的空殼。
Remove Middle Man
來移除。Inline Function
,將方法搬回呼叫端。Replace Superclass with Delegate
或 Replace Subclass with Delegate
將委派任務搬到真實類別去。