讀書筆記 設計模式原則

2021-08-27 16:20:49 字數 1445 閱讀 8047

這段時間通過《大話設計模式》這本書對物件導向設計,設計模式有了基本的認識, 尤其是書中的案例由淺入深,讓設計模式更加易於理解。為此整理了讀書筆記,以增加對書中內容了理解。

單一職責原則

封閉-開放原則

依賴倒轉原則

黎克特制代換原則

迪公尺特法則

合成/聚合復用原則

單一職責原則:乙個類應該僅有乙個引起它變化的原因

顧名思義在設計過程中,乙個類應該僅負責一件事情。

一是如果乙個類負責的事情過多會導致類太臃腫,難以維護;第二,負責的事情太多,那麼引起該類變化的原因也會增多,這會導致該類頻繁的修改。

封閉-開放原則:軟體實體(類,模組,函式等)應該可以擴充套件,但是不可修改

換句話說,就是設計的類,對擴充套件開放,對修改關閉。

當然,需求總是會變動的,我們一開始也不可能考慮到全部的情況,這一原則指導在設計的類或者方法時,要友好的支援擴充套件,更好的復用已有的設計,而不是一旦有了變動只能修改原來的設計。

依賴倒轉原則:(1) 高層模組不應該依賴低層模組,兩個都應該依賴抽象。 (2) 抽象不應該依賴細節,細節應該依賴抽象

對於第一點,我的理解是,高層模組要使用底層模組的功能,但不是直接在高層模組載入低層模組,這樣會導致兩個模組耦合在一起,而應該在高層和低層之間加入抽象(介面),這樣當低層發生變化時,高層模組是無感知的。

對於第二點,我的理解是,應該根據抽象的功能或類,實現相關細節,讓細節來依賴抽象。抽象的功能不關注具體細節是如何處理和實現的。

黎克特制代換原則:子型別必須能夠替換掉他們的父型別。

只有當子類可以替換掉父類,父類才能真正被復用,而子類也可以在父類的基礎上增加新行為。

我們使用類時,一般直接使用父型別。當傳入具體的子型別時,多型可以幫助我們對於具體型別的獲取。

迪公尺特法則(lod):最小知識原則。如果兩個類不必彼此直接通訊,那麼兩個類就不應當發生直接的相互引用。如果需要呼叫,通過第三方**這個呼叫

迪公尺特法則根本思想是降低類和類之間的耦合。有利於復用,易維護。

合成/聚合復用原則:盡量使用合成/聚合,盡量不要使用繼承

合成:一種」強」擁有關係,嚴格體現了整體和部分,生命週期一致。如:大雁和翅膀

聚合:一種」弱」擁有關係,體現a物件可以包含b,但是b不是a的一部分。如: 雁群和大雁

優先使用合成/聚合進行類的封裝,使用繼承時必須時is_a的關係。

本文介紹了設計模式的幾個原則, 作為我們進行類、函式等設計時的指導。針對具體情況具體分析,設計出可維護,可擴充套件,可復用,靈活性好的物件導向的結構,但是也不要過分設計,不要為**新增基於猜測,實際不需要的功能。

大話設計模式 - 程杰 著

大話設計模式讀書筆記之設計原則

1.單一職責原則 srp 對於乙個類而言,應該僅有乙個引起它變化的原因。如果你能夠想到多於乙個的動機去改變乙個類,那麼這個類就具有多於乙個的職責,就應該考慮類的職責分離。2.開放 封閉原則 是說軟體實體 對於類,模組,函式,方法等 對於擴充套件是開放的,對於修改是關閉。開放封閉原則是物件導向設計的核...

讀書筆記 軟體設計原則 設計模式

設計模式 可復用物件導向軟體的基礎 這些原則並不是必須要嚴格遵守的,但謹記這些原則會讓我們設計出更好的 christopher alexander說過 每乙個模式描述了乙個在我們周圍不斷重 生的問題,以及解決該問題的解決方案的核心 一般而言,乙個模式有四個基本描述 結構型模式 行為型模式 參考個人部...

讀書筆記 軟體設計原則 設計模式

讀書筆記 軟體設計原則 設計模式 這個作業屬於哪個課程 這個作業要求在 homework 11833 這個作業的目標 學習軟體設計模式相關原則 筆記 設計模式的六大原則 開閉原則 對拓展開放,對修改關閉 在程式需要進行拓展的時候,不能去修改原有的 實現乙個熱插拔的效果。簡而言之,就是為了使程式的拓展...