設計模式的基本原則 類與類之間的關係

2021-07-28 10:28:34 字數 1468 閱讀 7439

設計模式的基本原則:

1)開放封閉原則(ocp, open for extension, closed for modification principle)

類的改動是通過增加**進行的,而不是修改源**。

2)單一職責原則(srp, single responsibility principle)

類的職責要單一,對外只提供一種功能,而引起類變化的原因都應該只有乙個。

3)依賴倒置原則(dip, dependence inversion principle)

依賴於抽象(介面), 不要依賴具體的實現(類),也就是針對介面程式設計。

4)介面隔離原則(isp, inte***ce segegation principle)

不應該強迫客戶的程式依賴他們不需要的介面方法。乙個介面應該只提供一種對外功能,不應該把所有操作都封裝到乙個介面中去。

5)黎克特制替換原則(lsp, liskov substitution principle)

任何抽象類出現的地方都可以用他的實現類進行替換。實際就是虛擬機制,語言級別實現物件導向功能。

6)優先使用組合而不是繼承原則(carp, composite / aggregate reuse principle)

如果使用繼承,會導致父類的任何變換都可能影響到子類的行為。

如果使用物件組合,就降低了這種依賴關係。

7) 迪公尺特法則(lod, law of demeter)

乙個物件應當對其他物件盡可能少的了解,從而降低各個物件之間的耦合,提高系統的可維護性。例如在乙個程式中,各個模組之間

相互呼叫時,通常會提供乙個統一的介面來實現。這樣其他模組不需要了解另外乙個模組的內部實現細節,這樣當乙個模組內部的實

現發生改變時,不會影響其他模組的使用。

類與類之間的關係:

1 泛化(應該也叫繼承吧)(generalization)

表示類與類之間的繼承關係,介面與介面之間的繼承關係,或類對介面的實現關係。一般畫的關係是從子類指向父類的。

2 依賴(dependency)(物件注入技術--將物件傳遞給含有物件指標引數的函式,那麼此函式遍可以控制此物件了)

物件之間的臨時關係,臨時性體現在不超越方法的週期。在方法使用到的,如引數類,就一定是依賴關係。

3 關聯(association)

關聯是通過例項來完成的,當乙個例項化的類作為了另乙個類的成員變臉。在此類中又呼叫了例項化類的成員函式,那麼這個

成員函式的類和這個類就是關聯關係

4 聚合(aggregation)

表示兩個物件之間是整體和部分的弱關係,部分的生命週期可以超越整體。如電腦和滑鼠、

5 組合(combination)

表示兩個物件之間是整體和部分的

強關係,部分的生命週期不能超越整體,在我看來就是將另乙個類作為成員變數,但是這個成員的變數的位置方式放在了建構函式裡面,所以體現出了他很強吧,我直接構造了。

總的來說,後幾種關係所表現的強弱程度依次為:組合》聚合》關聯》依賴。

設計模式的基本原則

做專案時用到了觀察者設計模式,回憶了一下,總結了一下幾點 1.把會變化的部分取出並封裝起來,以便以後可以輕易地擴充此部分,而不影響不需要變化的其他部分 2.針對介面程式設計,而不是針對實現程式設計。變數的宣告型別,應該是超型別,通常是乙個抽象類或者是乙個介面,如此,只要是具體實現此超型別的類所產生的...

設計模式的基本原則

設計模式的世界豐富多彩,比如生產乙個個 產品 的工廠模式,銜接兩個不相關介面的介面卡模式,用不同的方式做同一件事的策略模式,構建步驟穩定 根據構建過程的不同配置構建出不同物件的建造者模式等。物件導向結合設計模式,才能真正體會到程式變得可維護 可復用 可擴充套件 靈活性好。設計模式對於程式設計師而言並...

設計模式基本原則

設計模式基本原則 開 閉 原則 open closed principle,或者ocp 原文 software entities should be open for extension,but closed for modification.解釋 乙個軟體實體應當對擴充套件開放,對修改關閉。黎克特...