物件導向程式設計的幾個原則

2021-05-26 18:26:06 字數 1093 閱讀 8172

物件導向程式設計時一般都要注意幾個原則:

1、開閉法則(ocp):設計的類要對修改關閉,對擴充套件開放。設計乙個模組的時候盡量做到在這個模組在不被修改的情況下擴充套件其功能,也就是說在不改變源**的情況下,改變這個模組的功能。

如何做到開閉法則呢?

解決這個問題的關鍵在於抽象化。在物件導向的程式語言如c++,可以設計乙個抽象層,這個抽象層是乙個介面或是乙個抽象類。在這個抽象層中,設計師盡可能的將所有可能遇到的擴充套件做乙個定義,這樣就不會再修改抽象層,這就是「閉」;同時,從抽象層派生的實現類可以改變系統的行為,這就是「開」的體現。

2、黎克特制代換法則(lsp):派生類可以用其基類代替,在基類使用的地方可以用派生類代替。lsp是ocp的補充,繼承是解決ocp的關鍵,而判斷乙個繼承質量是否高效,就要用lsp判斷。基類與子類的繼承關係就是抽象化的具體體現,所以黎克特制代換原則是對實現抽象化的具體步驟的規範。

3、依賴反轉法則(dip):客戶端依賴抽象而不依賴具體。要依賴於抽象,不要依賴於實現。看上去依賴倒轉原則與「開-閉」原則有很大的相似指出,實際上,它們之間的關係是目標和手段之間的關係。「開-閉」原則是目標,而達到這一目標的手段是依賴倒轉原則。

4、合成/聚合復用原則(carp)

要盡量使用合成/聚合,而不是整合關係達到復用的目的。顯然,合成/聚合復用原則使與黎克特制代換原則相輔相成的,兩者又都是對實現「開-閉」原則具體步驟的規範。前者要求設計師首先考慮合成/聚合關係,後者要求在使用整合關係時,必須確定這個關係是符合一定條件的。

5、迪公尺特法則(lod)

乙個軟體實體應當與盡可能少的其他實體發生相互作用。當乙個系統面臨功能擴充套件的時候,其中會有一些模組,它們需要修改的壓力比其他一些模組要大。最後的結果可能是這些模組需要修改或者不需要修改。但是不論是哪種情況,如果這些模組是相對孤立的,那麼它們就不會將修改的壓力傳遞給其他的模組。

6、介面隔離原則(isp)

應當為客戶端提供盡可能小的單獨的介面,而不要提供大的總介面。顯然,介面隔離原則與廣義的迪公尺特法則都是對乙個軟體實體與其他的軟體實體的通訊限制。廣義的迪公尺特法則要求盡可能的限制通訊的寬度和深度。介面隔離原則所限制的是通訊的寬度,也就是說,通訊應當盡可能地窄。顯然,遵守介面隔離原則與迪公尺特法則,會使乙個軟體系統在功能擴充套件地過程種,不會將修改地壓力傳遞到其他的物件。

物件導向程式設計的幾個原則

1.開閉原則 the open closed principle ocp 乙個模組在擴充套件性方面應該是開放的而在更改性方面應該是封閉的。因此在進行物件導向設計時要盡量考慮介面封裝機制 抽象機制和多型技術。該原則同樣適合於非物件導向設計的方法,是軟體工程設計方法的重要原則之一。我們以收音機的例子為例...

物件導向的幾個原則

開 閉原則 open closed principle ocp 黎克特制代換原則 liskov substitution principle lsp 依賴倒轉原則 dependency inversion principle dip 介面隔離原則 inte ce segregation princi...

Java基礎 物件導向程式設計的幾個原則

1.開閉原則 the open closed principle ocp 乙個模組在擴充套件性方面應該是開放的而在更改性方面應該是封閉的。因此在進行物件導向設計時要盡量考慮介面封裝機制 抽象機制和多型技術。該原則同樣適合於非物件導向設計的方法,是軟體工程設計方法的重要原則之一。我們以收音機的例子為例...