按照我的理解來說,就是乙個流程中,總體的步驟是固定的,但有些步驟是改變的,例如我們做煎蛋這個過程,有哪些步驟是固定的呢,打蛋,下鍋,上碟都是固定的,但有時候我們想吃鹹的,有時候想吃甜的,所以在說放佐料的步驟是改變的。
所有的設計模式都是把變化點和固定點分離開來,所謂的固定和變化是相對的,例如我們有乙個步驟乙個月才改變一次,那麼他相對其他步驟來說就是固定的,如果乙個程式他是完全變化的,或者是完全固定的,那麼他就不需要運用任何的設計模式,這個模式通常體現在寫庫的程式設計師和應用程式設計師的身上。
通常程式的繫結有2種,一種叫做晚繫結,一種叫做早繫結,什麼意思呢?我們寫的程式肯定是有先後的,早繫結的意思就像我們寫c語言時呼叫已經寫好的函式,這其實也是我們約定俗成的一種使用方式,而晚繫結指的是我們寫的子類繼承父類,但我們繼承的可能是乙個抽象類,我們需要overwrite一些函式,然後我們才能呼叫父類的某一些方法,意思是讓父類來呼叫子類的函式,而不是子類來呼叫父類的函式,這就造成了乙個問題,就是程式的主流程需要在父類裡面來實現,寫庫函式的程式設計師不得不學會寫主流程,而這個主流程可能會同時呼叫父類裡面的幾個函式,所以我們應該把這幾個函式寫為protected或者private,因為通常他單乙個方法起不了任何的作用,這也體現了我們物件導向的八大原則我們運用的框架很多都是運用了模板設計模式。
二十三種設計模式之模板方法模式
模板方法模式的主要設計思想是定義乙個演算法框架,允許用子類重寫或者其它方式對演算法框架內的某個步驟的具體實現進行修改。本章內容已沖泡咖啡和茶作為例子講解,咖啡和茶葉作為飲料的一種有共通之處,首先燒水 然後沖泡咖啡或茶葉,最後將沖泡後的咖啡或茶葉水倒進杯子中。我們可以將燒水行為和將飲料倒進杯子行為抽象...
二十三種設計模式之組合模式
組合模式 將物件聚合成樹形結構來表現 整體 部分 的層次結構。組合模式能讓客戶以一致的方式來處理個別物件以及物件組合。也就是我們可以忽略物件組合與個體之間的差別。應用場景 餐廳合併列印主選單 子選單 public abstract class menucomponent public string ...
二十三種設計模式之工廠模式
工廠模式的核心 例項化物件 原因 有些物件不能直接例項化,比如介面 抽象類及複雜物件的其他依賴 核心 呼叫工廠class的靜態方法例項化物件 以日誌為例 public class staticfactory 核心 先建立工廠物件,之後呼叫工廠方法 例項化工廠模式 public class insta...