設計模式之單一職責原則 開放 封閉原則

2021-08-04 05:15:19 字數 1137 閱讀 8674

單一職責原則

1.

單一職責定義:

就乙個類而言,應該僅有乙個引起它變化的原因。通俗的說,即乙個類只負責一項職責。

問題描述:

t負責兩個不同的職責:職責

p1,職責

p2。當由於職責

p1需求發生改變而需要修改類

t時,有可能會導致原本執行正常的職責

p2功能發生故障。

如果乙個類承擔職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受意想不到的破壞。

解釋說明:

比如:類

t只負責乙個職責

p,這樣設計是符合單一職責原則的。後來由於某種原因,也許是需求變更了,也許是程式的設計者境界提高了,需要將職責

p細分為粒度更細的職責p1,

p2,這時如果要使程式遵循單一職責原則,需要將類

t也分解為兩個類t1和

t2,分別負責p1、

p2兩個職責。但是在程式已經寫好的情況下,這樣做簡直太費時間了。所以,簡單的修改類

t,用它來負責兩個職責是乙個比較不錯的選擇,雖然這樣做有悖於單一職責原則。(這樣做的風險在於職責擴散的不確定性,因為我們不會想到這個職責

p,在未來可能會擴散為p1,

p2,p3,

p4……pn

。所以記住,在職責擴散到我們無法控制的程度之前,立刻對**進行重構)

開放

-封閉原則

1. 開放-

封閉原則定義:

軟體實體

(類、模組、函式等

)可以擴充套件,不可修改。對於擴充套件是開放的,對於更改是封閉的。

2.

解釋說明:

該原則意思就是說,當設計的時候,時刻考慮好,讓這個類足夠好,寫好了就不要去修改,當有新的需求,增加一些類,原來的**則不改動。

本文參考網上部落格及大話設計模式總結。

設計模式 單一職責原則 開放 封閉原則

乙個產品簡單一些,職責單一一些,或許是更好的選擇.單一職責原則,就乙個類而言,應該僅有乙個引起它變化的原因.如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力.這種耦合會導致脆弱的設計,當發生變化時,設計會遭受到意想不到的破壞.軟體設計真正...

單一職責原則和開放 封閉原則

如果設計乙個計算器有加減乘除的功能。下面的uml圖違反了什麼原則 單一職責原則 就乙個類而言,應該僅有乙個引起它變化的原因。產生原因 如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意...

單一職責 開放 封閉 依賴倒轉原則

內容摘錄自 大話設計模式 單一職責原則,就乙個類而言,應該僅有乙個引起它變化的原因 如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞。例如,介面與遊戲邏輯就應該進行分離,...