子方法處理太多狀況的問題

重構代碼時常常遇到一個子方法(或者類)有複雜的if-else,能夠處理多種狀況。string

此時該方法的調用者貌似很簡單,只須要簡單的調用該方法便可。但事實上,全部的複雜邏輯都落到該子方法鍾。重構

結果致使子方法的原本互不關聯的調用者也變得互相耦合。即,我只想由於調用者A修改子方法,則由於子方法被修改,其餘調用者均可能受到散彈式影響。對子方法的修改,必須考慮其各類調用者的實際使用狀況。方法

因此越是子方法,越應該處理更少的狀況。將複雜的邏輯交給調用者來處理。固然若是僅僅是簡單的多個狀態處理,例如strcpy中判斷string地址是否爲空,在不影響理解難度的狀況下,仍是放在子方法中處理空和非空兩種狀況更簡單。

相關文章
相關標籤/搜索