程式碼設計模式

1/2ページ

設計模式介紹之一:開篇概述

    這是一系列文章,原本是我撰寫的公司內部講義。最近重新熟悉設計模式翻了出來,再溫習一下。     本文的目的: 介紹設計模式 在開發過程中主動使用設計模式 使用設計模式來重構已有程式碼 不是完整的設計模式參考和詳解,僅僅是推薦     什麼是設計模式    設計模式的系統性概念是 GoF 整理 […]

設計模式介紹之三:命令模式(command)

    命令(模式)的結構很簡單,但對於消除程式碼間的耦合卻有著重要的影響。     在 C 語言中我們經常使用回撥函式,而命令模式是回撥( callback )的物件導向的替代物。從最直觀的角度來看,命令模式就是一個函式物件:一個作為物件的函式。通過將函式封裝為物件,就能夠以引數的形式將其傳遞給其 […]

設計模式介紹之六:工廠模式(factory)的巧妙實現

    本文展示了實際專案中使用到的一個工廠模式實現,在向系統中新增新型別時,只需要在新型別的實現檔案這一處做改動,將新增型別對應用程式程式碼的干擾降到了最低。     這個工廠實現的基本思想是:繼承自同一個介面的新型別,通過一個函式來建立其物件,利用C 中類的建構函式會被自動呼叫這一特性,在新型別 […]

設計模式簡述 – 原則

OO基本關係 面型物件設計的原則易維護 易擴充套件 易複用 靈活多樣   單一職責原則 對一個類來說 承擔的指責太多等於將職責耦合在了一起,一個職責發生變化時可能會小若或者抑制這個類完成其他的職責,耦合會導致脆弱的設計。發生變化時可能會產生意想不到的錯誤。軟體設計要做的就是發現職責並相互分離。。   […]

設計模式之訪問者模式

訪問者模式是23中GoF模式的一種,屬於行為型設計模式,它讓你定義一個類的新操作而無需改變它操作的這些成員類。 現實生活中,收銀員收銀計費就屬於訪問者模式。比如,當顧客在超市選擇了香蕉、麵包、酒放在購物車中,然後到收銀臺交錢。那麼收銀員就是一個訪問者,他要訪問購物車內顧客選擇的每一種商品,購物車就作 […]

<<設計模式-可複用物件導向軟體的基礎>>讀書筆記

設計模式有多重要,每個做開發的人都清楚。弄清楚設計模式很難,能熟練運用就更難了。讀別人的程式碼是 一件很享受的事情,因為可以挑比人程式碼的不足,從而產生優越感。 但是,如果你突然發現別人的程式碼寫的特別好,有好多東西看不明白。找不到具體實現,找不到呼叫位置的時候,你會很尷尬的。人家程式碼封裝的太好了 […]

設計模式之禪學習筆記–組合模式

一、定義 將物件組合成樹形結構以表示“部分-整體”的層次結構,使得使用者對單個物件和組合物件的使用具有一致性。 二、通用類圖 1:Component 抽象構件角色 定義參加組合物件的共有方法和屬性,可以定義一些預設的行為或屬性。 2:Leaf 葉子構件 葉子物件,其下再也沒有其他的分支,也就是遍歷的 […]

設計模式之禪學習筆記–策略模式

一、定義 定義一組演算法,將每個演算法都封裝起來,並且使它們之間可以互換(實現相同的介面)。 二、通用類圖 策略模式使用的就是物件導向的繼承和多型機制,非常容易理解和掌握。 1:Context 封裝角色 它也叫做上下文角色,起承上啟下封裝作用,遮蔽高層模組對策略、演算法的直接封裝可能存在的變化。 2 […]

設計模式—-橋接模式

概述 涉及角色 UML 使用場景 優點 缺點 程式碼示例 概述 將抽象和實現解耦,使得兩者可以獨立地變化,從而可以保持各部分的獨立性以及應對他們的功能擴充套件。涉及到一個作為橋接的介面,使得實體類的功能獨立於介面實現類。這兩種型別的類可被結構化改變而互不影響 橋接模式連線的內容為:類的功能層次結構 […]