永遠不要讓乙個類存在多個改變的理由。單一職責原則代表了設計應用程式時一種很好的識別類的方式,並且它提醒你思考乙個類的所有演化方式。只有對應用程式的工作方式有了很好的理解,才能很好的分離職責。
單一職責原則原則的核心含意是:只能讓乙個類/介面/方法有且僅有乙個職責。
案例:
public class animal
public static void main(string args)
}
執行結果:
狗running on the land...
牛running on the land...
馬running on the land...
然而並不是所有的動物都在陸地上奔跑,鳥在天上飛,魚在水中游。這時的animal類就不符合單一職責,需要將animal進行細分。
第一種:
class aquatic
}class terrestrial
}class birds
}
第二種:
這種修改方式直接在**級別上違背了單一職責原則,雖然修改起來最簡單,但隱患卻是最大的。
public class animal else if("bird".equals(animal))else
}}
第三種:
這種修改方式沒有改動原來的方法,而是在類中新加了乙個方法,這樣雖然也違背了單一職責原則,但在方法級別上卻是符合單一職責原則的,因為它並沒有動原來方法的**。
public class animal
public void run2(string animal)
public void run3(string animal)
}
單一職責原則雖然它是最簡單但又最難運用的原則,需要設計人員發現類的不同職責並將其分離,而發現類的多重職責需要設計人員具有較強的分析設計能力和相關實踐經驗。
個人部落格
掘金csdn
github
碼雲oschina
segmentfault
物件導向設計原則 單一職責原則
單一職責原則是最簡單的物件導向設計原則,它用於控制類的粒度大小。單一職責原則定義如下 單一職責原則 single responsibility principle,srp 乙個類只負責乙個功能領 域中的相應職責,或者可以定義為 就乙個類而言,應該只有乙個引起它變化的原因。單一職責原則告訴我們 乙個類...
物件導向設計原則 單一職責原則 SRP
晚 上在宿舍把webcast翻出來,聽了李建忠講的關於物件導向設計的幾天基本設計原則的課,半懂非懂聽了下來,聽完之後除了茫然還是茫然!也好,只有這樣才能知道自己所知甚淺,所學甚糙!革命遠未成功,吾須戒驕戒躁!ps 個人覺得李建忠講課水平一般,可能他是乙個非常好的程式設計師,但不是乙個好的講課員,大概...
物件導向設計原則之單一職責原則
單一職責原則是最簡單的物件導向設計原則,它用於控制類的粒度大小。單一職責原則定義如下 單一職責原則 single responsibility principle,srp 乙個類只負責乙個功能領域中的相應職責,或者可以定義為 就乙個類而言,應該只有乙個引起它變化的原因。單一職責原則告訴我們 乙個類不...