6大設計原則之1--單一職責原則

單一職責:Single Responsibility Principle(RSP),應該且僅有一個緣由引發類的變動。(There should never be more than one reason for a class to change).
設計

那麼RSP有什麼好處呢:接口

  • 類的複雜性下降,實現什麼都有明確清晰的定義ip

  • 可讀性提升,複雜性下降了,可讀性固然就高了ci

  • 可維護性提升,可讀性提升了,維護也就容易了it

  • 改變引發的風險下降.若是單一職責定義的好,一個接口的改動只會影響相應的實現類,不會影響到其餘接口,這對系統的可擴展性和可維護性都有很大幫助。class

單一職責原則很好理解,可是難在「職責」的定義上,緣由在於「職責」並無一個可量化的標準,一個類到底要負責哪些職責?這些職責要如何細分?細分以後的職責是否都要有對應的接口或類?這些都要從實際的項目去考慮,要考慮可變因素和不可變因素,還要考慮收益成本率,有些設計若是但從「學究」理論去考慮是有問題的,可是具體到現實的應用可能就足夠了。
擴展

單一職責原則提出了編寫程序的一個標準,用「職責」或「變化緣由」來衡量接口或類設計的是否優良,可是「職責」和「變化緣由」都是不可度量的,因項目而異,因環境而異程序

對於接口,咱們設計的時候要單一,可是對於類,就要綜合考慮了。生搬硬套單一原則會使類的數量劇增,給維護帶來很是多的麻煩。並且過度細分類的職責也會人爲的增長系統的複雜度。
方法

單一職責原則,適用於接口和類,一樣也適用於方法,讓方法儘量簡單。項目

相關文章
相關標籤/搜索