天天看點

設計模式:單一職責原則,開放封閉原則,依賴倒轉原則,理氏代換原則

還是那幾句話:

學無止境,精益求精

十年河東,十年河西,莫欺少年窮

學曆代表你的過去,能力代表你的現在,學習代表你的将來

廢話不多說,直接進入正題:

單一職責原則:

按照大話設計模式的解讀,所謂單一職責原則是指:就一個類而言,應該僅有一個引起它變化的原因!

設計模式:單一職責原則,開放封閉原則,依賴倒轉原則,理氏代換原則

如果一個類承擔的職責過多,就等于把這些職責耦合在一起,這無形中增加了設計的耦合度。這個類中一個職責的變化,可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導緻脆弱的設計,當它發生變化時,設計會遭到意想不到的破壞!

換言之:

軟體設計真正要做的許多内容,就是發現更多職責并把發現的職責作分離!

開放封閉原則:

設計模式:單一職責原則,開放封閉原則,依賴倒轉原則,理氏代換原則

這個原則其實有兩個特性,一個是說對于擴充是開放的,另一個是說,對于修改是封閉的(ASD原則)

由于被篇幅還挺多,我在這裡就不一一打字說明了!直接貼出一些重要的話語吧!

設計模式:單一職責原則,開放封閉原則,依賴倒轉原則,理氏代換原則
設計模式:單一職責原則,開放封閉原則,依賴倒轉原則,理氏代換原則

在此,舉個例子:

如同之前我寫的部落格:簡單工廠模式,政策模式、

簡單工廠模式(例子):實作加減乘數的運算。

政策模式(例子):商場促銷政策

設計模式:單一職責原則,開放封閉原則,依賴倒轉原則,理氏代換原則

同理,當商場推出一個全新的促銷政策時,我們要做的不是去修改原來的政策,還是增加對應的政策即可!這就是所謂了不修改,而是去擴充!

在此;對開放封閉原則作個總結,如下:

設計模式:單一職責原則,開放封閉原則,依賴倒轉原則,理氏代換原則

依賴倒轉原則:

設計模式:單一職責原則,開放封閉原則,依賴倒轉原則,理氏代換原則

我在依賴倒轉原則的了解為:強内聚,松耦合!

理氏代換原則:

設計模式:單一職責原則,開放封閉原則,依賴倒轉原則,理氏代換原則
設計模式:單一職責原則,開放封閉原則,依賴倒轉原則,理氏代換原則

這裡可了解為:大部分鳥會飛,但企鵝,鴕鳥不會分。是以,按照理氏代換原則,企鵝或者鴕鳥是不能繼承鳥類的!

OK,本篇部落格,大多都是理論知識,我了解的也很平平!是以,寫的不是很好,希望大家多多包涵!

 @陳卧龍的部落格

繼續閱讀