優點:
降低類的複雜度;
提高類的可讀性,因為類的職能單一,看起來比較有目的性,顯得簡單;
提高系統的可維護性,降低變更程式引起的風險。
缺點:
如果一味追求這個單一職責,有時也會造成類的大**。。。。。。。不過介面和方法應該遵循這個原則。
舉個例子啦
1.建立乙個bird類和測試類maintest
package com.maomao.design.principle.singleresponsibility;
public class bird
}package com.maomao.design.principle.singleresponsibility;
public class maintest
}
這樣的結果執行如下:
用翅膀飛
2.當mainmovemode方法中傳入其它鳥類的時候,如駝鳥,說它用翅膀飛就不合適了,那麼直接在bird類中修改**是最快的,但是,這樣違反原則呀!而且風險也很大。
package com.maomao.design.principle.singleresponsibility;
public class bird
else
}}
在maintest中
package com.maomao.design.principle.singleresponsibility;
public class maintest
}
結果:
用翅膀飛
用腳走路
為了體現自己編碼遵行一顆有原則的心,將**進一步演進。分別建立兩個類flybird和walkbird 分別繼承bird
package com.maomao.design.principle.singleresponsibility;
public class flybird extends bird
}package com.maomao.design.principle.singleresponsibility;
public class walkbird extends bird
}public class maintest
}
結果:
用翅膀飛的鳥
用腳走路的鳥
再舉個例子
建立乙個介面icourse
package com.maomao.design.principle.singleresponsibility;
public inte***ce icourse ***因為退掉這種可能會影響到無法獲取課程資訊,所以可以將這個介面拆分成兩個介面***
package com.maomao.design.principle.singleresponsibility;
public inte***ce icoursemanager
package com.maomao.design.principle.singleresponsibility;
public inte***ce icoursecontent
package com.maomao.design.principle.singleresponsibility;
public class courseiml implements icoursecontent,icoursemanager
@override
public byte coursevideo()
@override
public void studycourse()
@override
public void refundcourse()
} 這就是介面方面的單一職責
最後舉乙個方法的單一職責
public class method
private void updateuserinfo(string username,string... properties)
private void updateusername(string username)
private void updateuseraddress(string address)
private void updateuserinfo(string username,string address,boolean bool)else
username = "maomao";
address = "shenzhen";
}}
七大原則一 單一職責原則
單一職責原則 即乙個類應該只負責一項職責 單 一職責原 則 注意事項和細節 1 降低類的複雜度,乙個類只負責一項職責。2 提高類的可讀性,可維護性 3 降低變更引起的風險 4 通常情況下,我們應當遵守單一職責原則,只有邏輯足夠簡單,才可以在 級違 反單一職責原則 只有類中方法數量足夠少,可以在方法級...
設計模式 七大原則 單一職責原則
singleresponsibility 對類而言,乙個類只負責一項職責。如果類a負責兩個不同的職責 職責1和職責2 當職責1需求變更改變a時,可能就會造成職責2執行錯誤 所以需要將類a的粒度分解為a1,a2a.降低類的複雜度,乙個類只負責一項職責 b.提高類的可讀性,可維護性 c.降低變更引起的風...
設計模式 七大原則 單一職責原則
responsibility principle srp 乙個類或者模組只負責完成乙個職責 或者功能 類和模組的兩種理解 把模組看作比類更加抽象餓概念,類也可以看作模組 把模組看作壁壘更加粗粒度的 快,模組中包含多個類,多個類組成乙個模組 不是。不管是應用設計原則還是設計模式,最終的目的還是提高 的...