物件導向的原則

2021-06-07 18:50:56 字數 1052 閱讀 6608

1、單一職責原則

單一職責原則:就乙個類而言,應該僅有乙個引起它變化的原因。如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破話。軟體設計真正要做的許多內容,就是發現職責並把那些職責相互分離。如果你能夠想到多於乙個的動機去改變乙個類,那麼這個類就具有多於乙個的職責。

2、開放-封閉原則

開放-封閉原則:是說軟體實體(類、模組、函式等等)應該可以擴充套件,但是不可修改。該原則有兩個特徵,對於擴充套件是開放的,對於更改是封閉的。無論模組是多麼的「封閉」,都會存在一些無法對之封閉的變化。既然不可能完全封閉,設計人員必須對於他設計的模組應該對哪些變化封閉作出選擇。他必須先猜測出最有可能變化的變化種類,然後構造抽象來隔離那些變化。面對需求,對程式的改動是通過增加新**進行的,而不是更改現有的**。

開放-封閉原則是物件導向設計的核心所在,遵循這個原則可以帶來物件導向技術所聲稱的巨大好處,也就是可維護、可擴充套件、可復用、靈活性好。開發人員應該僅對程式中呈現出頻繁變化的哪些部分作出抽象,然而,對於應用程式中的每個部分都刻意地進行抽象同樣不是乙個好主意,拒絕不成熟的抽象和抽象本身一樣重要。

3、依賴倒轉原則

依賴倒轉原則:高層模組不應該依賴底層模組,兩個都應該依賴抽象。抽象不應該依賴細節,細節應該依賴抽象。依賴倒轉原則其實可以說是物件導向設計的標識,用哪種語言來編寫程式不重要,如果編寫時考慮的都是如何針對抽象程式設計而不是針對細節程式設計,即程式中所有的依賴關係都是終止於抽象類或者藉口,那就是物件導向的設計,反之那就是過程化的設計。

4、黎克特制代換原則

黎克特制代換原則:子型別必須能夠替換掉它們的父型別。乙個軟體實體如果使用的是乙個父類的話,那麼一定適用於其子類,而且它察覺不出父類物件和子類物件的區別。也就是說,在軟體裡面,把父類都替換成它的子類,程式的行為沒有變化。

5、迪公尺特原則

迪公尺特原則:如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接的相互作用,如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三者**這個呼叫。在類的結構設計上,每乙個類應當盡量降低成員的訪問許可權。迪公尺特原則其根本思想是強調了類之間的松耦合。

物件導向的原則

1.srp單一職責原則 適用於類功能 就乙個類而言,應該僅有乙個引起它變化的原因.詳細說明 如果乙個類承擔的職責過多,就等於把這些職責耦合在一起.乙個職責的變化可能會削弱或者抑制這個類完成其它職責的能力.這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到意想不到的破壞.結論 它是所有類設計原則最簡...

物件導向的原則

設計模式遵循的一般原則 1.開 閉原則 open closed principle,ocp 乙個軟體實體應當對擴充套件開發,對修改關閉.說的是,再設計乙個模組的時候,應當使這個模組可以在不被修改的前提下被擴充套件.換言之,應當可以在不必修改源 的情況下改變這個模組的行為,在保持系統一定穩定性的基礎上...

物件導向的原則

就乙個類而言,應該僅有乙個引起它變化的原因。軟體實體 類 模組 函式等 應該可以擴充套件,但是不可修改。也就是對於擴充套件是開放等,對於更改是封閉等。面對需求,對程式的改動是通過增加新 進行的,而不是更改現有的 無論模組多麼 封閉 都會存在一些無法對之封閉的變化。既然不可能完全封閉,設計人員必須對他...