物件導向的原則

2022-02-20 07:25:10 字數 1149 閱讀 4691

對於oo系統的設計而言,在支援可維護性的同時,提高系統的可復用性是乙個至關重要的問題,如何同時提高系統的可維護性和可復用性,是ood需要解決的核心問題之一。在ood中,可維護性的復用是以設計原則為基礎的。常用的ood原則包括開閉原則、黎克特制替換原則、依賴倒置原則、組合/聚合復用原則、介面隔離原則和最少知識原則等。這些設計原則首先都是面向復用的原則,遵循這些設計原則可以有效地提高系統的復用性,同時提高系統的可維護性。

開閉原則是指軟體實體應對擴充套件開發,而對修改關閉。即對修改關閉,即盡量在不修改原有**的情況下進行擴充套件。此處的「實體」可以指乙個軟體模組,乙個由多個類組成的區域性結構或乙個獨立的類。

黎克特制替換原則是由"barbara liskov"提出的,其基本思想是,乙個軟體實體如果使用的是乙個基類物件,那麼一定適用於其子類物件,而且覺察不出基類物件和子類物件的區別,即把基類都替換成它的子類,程式的行為沒有變化。反過來則不一定成立,如果乙個軟體實體使用的是乙個子類物件,那麼它不一定適用於基類物件。

組合/聚合復用原則又稱為合成復用原則,是在乙個新的物件中通過組合關係或聚合關係來使用一些已有的物件,使之稱為新物件的一部分,新物件通過委派呼叫已有物件的方法達到復用其已有功能的目的。簡單的說,就是要盡量使用組合/聚合關係,少用繼承。

依賴倒置原則是指抽象不應該依賴於細節,細節應當依賴於抽象。換言之,要針對介面程式設計,而不是針對實現程式設計。在程式**中傳遞引數時或在組合(或聚合)關係中,盡量引用層次高的抽象層類,即使用介面和抽象類進行變數型別宣告、引數型別宣告和方法返回型別宣告,以及資料型別的轉換等,而不要用具體類來做這些事情。

介面隔離原則是指使用多個專門的介面,而不使用單一的總介面。每個介面應該承擔一種相對獨立的角色,不多不少,不幹不該幹的事,該幹的事都要幹。這裡的「介面」通常有兩種不同的含義,一種是指乙個型別所具有的方法特徵的集合,僅僅是一種邏輯上的抽象;另外一種是指某種語言具體的介面定義,有嚴格的定義和介面。

抽象類不會有例項,一般作為父類為子類繼承,一般包含這個系的共同屬性和方法。注意:好的繼承關係中,只有葉節點是具體類,其他節點應該都是抽象類,也就是說具體類是不被繼承的。將盡可能多的共同**放到抽象類中。

最少知識原則也稱為迪公尺特法則(law of demeter),是指乙個軟體實體應當盡可能少地與其他實體發生相互作用。這樣,當乙個模組修改時,就會盡量少地影響其他的模組,擴充套件會相對容易。這是對軟體實體之間通訊的限制,它要求限制軟體實體之間通訊的寬度和深度。

物件導向的原則

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

物件導向的原則

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

物件導向的原則

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