物件導向的設計原則二 單一職責原則

2021-04-30 01:07:43 字數 531 閱讀 8552

動機

單一職責原則

乙個類應該只受一種變化的影響。

單一職責原則簡單而直觀,但是在實際實現中可能是很困難的。

例項

假設我們需要乙個物件儲存email資訊,在下面的例子中我們將使用iemail介面。初看起來,一切都很好。但是仔細分析我們會發現我們的iemail介面和email類具有兩個職責(兩種引起改變的原因)。乙個是在一些類似pop3和imap的email協議下使用該類,如果需要支援其他的協議,需要以其他的方式格式化內容字段,並且需要新增新的**來支援新的協議。另乙個是content欄位,儘管content欄位是字串型別,或許我們將來要支援其他的格式,例如html格式。

如果我們只用乙個類,乙個職責的改變可能會影響另乙個:

總結

單一職責原則代表了設計應用程式時一種很好的識別類的方式,並且它提醒你思考乙個類的所有演化方式。只有對應用程式的工作方式有了很好的理解,才能很好的分離職責。

物件導向設計原則 單一職責原則

單一職責原則是最簡單的物件導向設計原則,它用於控制類的粒度大小。單一職責原則定義如下 單一職責原則 single responsibility principle,srp 乙個類只負責乙個功能領 域中的相應職責,或者可以定義為 就乙個類而言,應該只有乙個引起它變化的原因。單一職責原則告訴我們 乙個類...

物件導向設計原則 單一職責原則 SRP

晚 上在宿舍把webcast翻出來,聽了李建忠講的關於物件導向設計的幾天基本設計原則的課,半懂非懂聽了下來,聽完之後除了茫然還是茫然!也好,只有這樣才能知道自己所知甚淺,所學甚糙!革命遠未成功,吾須戒驕戒躁!ps 個人覺得李建忠講課水平一般,可能他是乙個非常好的程式設計師,但不是乙個好的講課員,大概...

物件導向設計原則之單一職責原則

單一職責原則是最簡單的物件導向設計原則,它用於控制類的粒度大小。單一職責原則定義如下 單一職責原則 single responsibility principle,srp 乙個類只負責乙個功能領域中的相應職責,或者可以定義為 就乙個類而言,應該只有乙個引起它變化的原因。單一職責原則告訴我們 乙個類不...