因為依賴了整個類別,連帶依賴自己根本沒用到的方法,使得受到連帶影響
假設有個Employee類別,其中有 PayCalculator 計算薪資方法 由財務角色使用、HourReporter 計算工作時數的方法由人資計算使用、leaveCounter 休假計算方法由主管使用,每個角色都使用了Employee類別的一個方法,同時也依賴了其他兩個沒用到的方法,若有天這些沒用到的方法有了變動且發生錯誤,就算使用者沒使用到,也會連帶受到影響
這裡與朋友討論的結論,其實根本上一開始就是需要盡量網SRP去做拆分,因為他們是為不同角色服務,不過這是理想情況,如果真的拆分徹底,其實每個使用者都不會用到自己不需要的東西,不過有時候我們還是會把多個替不同角色服務方法,塞在同一個類別中,這時候可以採取方法二,在使用者和類別中建立介面,將依賴給分隔開來,使用者只需要依賴介面來實作自己需要的方法就好,這個原則實作時機,將會是功能開發到成熟了,就可以根據角色開始拆分類別了