一 設計模式的原則

2021-10-05 18:49:49 字數 748 閱讀 7266

針對乙個複雜問題,一般有兩種解決方法:

分解(使用if else分別處理),針對多種情況分別討論(switch case)。

抽象(使用多型統一處理),通過物件導向多型特性,不同的情況使用同一的介面處理。

設計原則:

依賴倒置原則:高層(穩定)不應依賴於低層(變化),而應該依賴於抽象(某個主類不應依賴於細分類)。

單一職責原則:類的職責應該單一,否則應該進行拆分。

開閉原則:對擴充套件開放,對更改關閉。類確定後應該盡量避免對源**的修改。

黎克特制替換原則:子類應該能夠替換父類(is a)(類b繼承類a時,除新增新的方法完成新增功外,盡量不要重寫父類a的方法,

也盡量不要過載父類a的方法。)

介面隔離原則:介面應該小而完備,即public的方法小而完備,防止其他類產生依賴。

迪公尺特最少知道原則:(我們稱出現成員變數、方法引數、方法返回值中的類為直接的朋友, 而出現在區域性變數中的類則不是

接的朋友。也就是說,陌生的類最好不要作為區域性變數的形式出現在類的內部。)

優先類組合而不是類繼承原則

設計模式的要點是:

尋找變化和穩定的分離點,在變化處應用設計模式(分清楚是穩定還是變化),將穩定的抽到抽象類。在設計類的時候思考將來類哪個部分可能會出現擴充套件,思考在此處運用設計模式。

設計模式分類:

從目的劃分:

建立型、結構型、行為型

從範圍劃分:

類模式:類與子類的靜態關係

物件模式:物件之間的動態關係

設計模式(一) 設計原則

此系列只是對 大話設計模式 的鞏固總結。在理解設計模式之前,需要理解幾個 物件導向的設計原則 單一職責 乙個類只專注於做一件事。黎克特制替換 基類存在的地方,子類可以將其替換。依賴倒置 實現盡量依賴抽象,不依賴具體實現。介面隔離 為使用者提供盡可能小的的單獨介面,而不是大而全。迪公尺特法則 乙個實體...

設計模式筆記(一) 設計原則

類 物件之間的關係 generalization 泛化 dependency 依賴 association 關聯 aggregation 聚合 composition 組合 合成 泛化 表示類之間是is a關係,如類a繼承了b類或實現了b介面,子類會繼承父類的屬性和方法。依賴 表示類之間是use a...

設計模式原則 單一職責原則

定義 乙個物件應該只包含單一的職責,並且該職責被完整地封裝在乙個類中。即 不要存在多於乙個導致類變更的原因。通俗的說,就是乙個類只負責一項職責。問題由來 類t負責兩個不同的職責 職責p1,職責p2。當由於職責p1需求發生改變而需要修改類t時,有可能會導致原本執行正常的職責p2功能發生故障。解決方案 ...