敏捷軟件開發之單一職責原則

SRP:單一職責原則(The Single Responsibility Principle,SRP):
一個類應該只有一個發生變化的原因。

在SRP中,我們把職責定義為變化的原因。如果你能夠想到多于一個的動機去改變一個類,那么這個類就具有多于一個的職責。

例如如下Modem的接口違反了SRP:

package com.pptb.design.patterns.srp;

public interface Modem {
    void dial(String pno);
    void hangUp();
    void send(char c);
    char recv();
}

Modem接口的dial和hangup函數職責是連接管理,send和recv的職責是數據通信,應該將這兩組函數分離到兩個接口中,如下:

package com.pptb.design.patterns.srp;

public interface Connection {
    void dial(String pno);
    void hangUp();
}

package com.pptb.design.patterns.srp;

public interface DataChannel {
    void send(char c);
    char recv();
}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 單一職責原則(SRP) 介紹 就一個類而言,應該僅有一個引起它變化的原因。 實現方法之一就是把不同職責分離到不同的...
    東風三隊閱讀 307評論 0 0
  • 《Agile Principles, Patterns, and Practices in C#》by Micah...
    丑小丫大笨蛋閱讀 12,161評論 3 18
  • 面向對象的3個基本要素: 封裝、繼承、多態 面向對象的5個基本設計原則: 單一職責原則(Single-Respos...
    badcyc閱讀 886評論 0 4
  • 01 星期五下午5點,像往常一樣,我“趕”車去成都。車子剛走大概10幾分鐘就停下了,有個小販上車來叫賣他的鍋魁(成...
    小迷糊Lyla閱讀 397評論 0 5
  • 今天一天幾乎都在看這部日劇《賣房子的女人》,一開始是有點不喜歡女主角三軒家萬智略浮夸,或者說有點僵硬冷冰冰的表演,...
    亦如是閱讀 591評論 0 4