物件導向設計的原則

2021-05-24 05:42:32 字數 1077 閱讀 8163

1、迪公尺特原則(law of demeter)

迪公尺特原則也叫最少知識原則(least knowledge principle, lkp)。乙個軟體實體應當盡可能少的與其他實體發生相互作用。每乙個軟體單位對其他的單位都只有最少的知識,而且侷限於那些與本單位密切相關的軟體單位。迪公尺特法 則減少耦合的問題,類之間的耦合越弱,越有利於復用,乙個處在弱耦合的類被修改,不會對有關係的類造成波及。也就是說,資訊的隱藏促進了軟體的復用。設計模式的門面模式(facade)和中介模式(mediator),都是迪公尺特法則應用的例子。

2、 介面隔離原則 (inte***ce segregation principle)。 使用多個專門的介面比使用單一的總介面總要好,建立單一介面,不要建立臃腫龐大的介面。乙個介面代表乙個角色,不應當將不 同的角色都交給乙個介面。沒有關係的介面合併在一起,形成乙個臃腫的大介面,這是對角色和介面的汙染。不應當將幾個不同的角色都交給同乙個介面,而應當交 給不同的介面。

3、依賴倒置原則(dependence inversion principle)。上層模組不應該依賴於底層模組,它們都應該依賴於抽象。抽象不應該依賴於細節,細節應該依賴於抽象,要針對介面程式設計,不要針對實現程式設計。

4、黎克特制代換原則(liskov substitution principle, lsp)。乙個軟體實體如果使用的是乙個基類的話,那麼一定適用於其子類。而且它覺察不出基類物件和子類物件的區別。也就是說,在軟體裡面,把基類都替換成它的子類,程式的行為沒有變化。反過來的代換不成立,如果乙個軟體實體使用的是乙個子類的話,那麼它不一定適用於基類。

5、開閉原則(open-closed principle,ocp)。乙個軟體實體應當對擴充套件開放,對修改關閉( software entities should be open for extension,but closed for modification.)。即在設計乙個模組的時候,應當使這個模組可以在不被修改的前提下被擴充套件。

6、單一職責原則(single responsibility principle )。所謂單一職責原則,就是對乙個類而言,應該僅有乙個引起它變化的原因。換句話說,乙個類的功能要單一,只做與它相關的事情。在類的設計過程中要按職責進行設計,彼此保持正交,互不干涉。

物件導向設計原則

oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...

物件導向設計原則

物件設計原則 物件導向設計原則 物件導向設計的基石是 開 閉 原則。開一閉 原則講的是 乙個軟體實體應當對擴充套件開放,對修改關閉。這個規則說的是,在設計乙個模組的時候,應當使這個模組可以在不被修改的前提下被擴充套件。從另外乙個角度講,就是所謂的 對可變性封裝原則 對可變性封裝原則 意味著兩點 1 ...

物件導向設計原則

oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...