單一職責原則

2022-05-29 04:36:13 字數 813 閱讀 3169

乙個類應該只負責一項職責。如類a負責兩個不同職責:職責1,職責2。當職責1需求變更而改變a時,可能造成職責2執行錯誤,所以需要將類a的粒度分解為a1,a2

以交通工具案例說明

方案1

public class singleresponsibility1

}class vehicle

}

缺點:違反了單一職責原則

改進:根據交通工具執行方法不同,分解成不同的類。

2)方案二

public class singleresponsibility2

}class roadvehicle

}class airvehicle

}

分析:雖然遵守了單一職責原則。但改動很大

改進:直接修改vehicle類,讓方法實現單一原則。

3)方案三

public class singleresponsibility3

}class vehicle2

public void runair(string vehicle)

}

分析:這種修改方法沒有對原來的類做大的修改,只是增加方法。

雖然沒有在類級別上遵守單一職責原則,但是在方法級別上遵守單一職責。

1)降低類的複雜度,乙個類只負責一項職責。

2)提高類的可讀性,可維護性

3)降低變更引起的風險

4)通常情況下,我們應當遵守單一職責原則,只有邏輯足夠簡單,才可以在**級違反單一職責原則;只有類中方法數量足夠少,可以在方法級別保持單一職責原則。

單一職責原則

定義 不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。問題由來 類t負責兩個不同的職責 職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p2功能發生故障。解決方案 遵循單一職責原則。分別建立兩個類t1 t2,使t1完成職責p1功能,t...

單一職責原則

單一職責原則 乙個類,只有乙個引起它變化的原因。應該只有乙個職責。每乙個職責都是變化的乙個軸線,如果乙個類有乙個以上的職責,這些職責就耦合在了一起。這會導致脆弱的設計。當乙個職責發生變化時,可能會影響其它的職責。另外,多個職責耦合在一起,會影響復用性。例如 要實現邏輯和介面的分離。對於user類,裡...

單一職責原則

問題由來 一心二用,效率降低 類t負責兩個不同的職責 職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p2功能發生故障。解決方案 專注做某件事情 遵循單一職責原則。分別建立兩個類t1 t2,使t1完成職責p1功能,t2完成職責p2功能。這樣,當修改類t1...