軟體設計七大原則之三 單一職責原則

2021-09-10 23:54:28 字數 2439 閱讀 8549

優點:

降低類的複雜度;

提高類的可讀性,因為類的職能單一,看起來比較有目的性,顯得簡單;

提高系統的可維護性,降低變更程式引起的風險。

缺點:

如果一味追求這個單一職責,有時也會造成類的大**。。。。。。。不過介面和方法應該遵循這個原則。

舉個例子啦

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 乙個類或者模組只負責完成乙個職責 或者功能 類和模組的兩種理解 把模組看作比類更加抽象餓概念,類也可以看作模組 把模組看作壁壘更加粗粒度的 快,模組中包含多個類,多個類組成乙個模組 不是。不管是應用設計原則還是設計模式,最終的目的還是提高 的...