單一職責原則

2021-10-09 11:09:56 字數 1581 閱讀 3323

錯誤**示例:

course 類承擔了兩種處理邏輯。假如現在要對課程進行加密,直播課程和錄播課程的加密邏輯不一樣,必須修改**。而修改**的邏輯勢必會相互影響,容易帶來不可控的風險。

public

class

course

else}}

// 呼叫

public

class

singleresponsibilitytest

}

我們對職責進行解耦,分別建立兩個類:livecourse、replaycourse

public

class

livecourse

}public

class

replaycourse

}// 呼叫類

public

class

singleresponsibilitytest

}

public

inte***ce

icourse

拆分成兩個介面:

public

inte***ce

icourseinfo

public

inte***ce

icoursemanager

// 實現類

public

class

courseimpl

implements

icoursemanager

,icourseinfo

@override

public

void

refundcourse()

@override

public string getcoursename()

@override

public

byte

getcoursevideo()

}

public

class

method

private

void

modifyuserinfo

(string username,string.

.. fileds)

private

void

modifyuserinfo

(string username,string address,

boolean bool)

else

username =

"tom"

; address =

"changsha";}

}

將這個方法拆分成兩個方法:

private

void

modifyusername

(string username)

private

void

modifyaddress

(string address)

單一職責原則

定義 不要存在多於乙個導致類變更的原因。通俗的說,即乙個類只負責一項職責。問題由來 類t負責兩個不同的職責 職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p2功能發生故障。解決方案 遵循單一職責原則。分別建立兩個類t1 t2,使t1完成職責p1功能,t...

單一職責原則

單一職責原則 乙個類,只有乙個引起它變化的原因。應該只有乙個職責。每乙個職責都是變化的乙個軸線,如果乙個類有乙個以上的職責,這些職責就耦合在了一起。這會導致脆弱的設計。當乙個職責發生變化時,可能會影響其它的職責。另外,多個職責耦合在一起,會影響復用性。例如 要實現邏輯和介面的分離。對於user類,裡...

單一職責原則

問題由來 一心二用,效率降低 類t負責兩個不同的職責 職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p2功能發生故障。解決方案 專注做某件事情 遵循單一職責原則。分別建立兩個類t1 t2,使t1完成職責p1功能,t2完成職責p2功能。這樣,當修改類t1...