《GeekBand》C 設計模式02

2021-07-22 21:29:54 字數 913 閱讀 8776

工廠方法(簡單工廠)

定義:定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。factory method是得乙個類的例項化延遲(目的:解耦,手段:虛函式)到子類。——《設計模式》gof

exp:實現乙個多型別的分割器

//抽象類

class isplitter

};//工廠基類

class splitte***ctory

};//具體類

class binarysplitter : public isplitter;

class txtsplitter: public isplitter;

class picturesplitter: public isplitter;

class videosplitter: public isplitter;

//具體工廠

class binarysplitte***ctory: public splitte***ctory

};class txtsplitte***ctory: public splitte***ctory

};class picturesplitte***ctory: public splitte***ctory

};class videosplitte***ctory: public splitte***ctory

};class mainform : public form

void button1_click()

};

要點:

工廠模式用於隔離物件使用者和具體型別的緊耦合關係。通過物件導向的手法將具體工作延遲到子類,實現了解耦。

缺點:要求建立方法和引數相同

遺留問題,外層如何選擇該建立的型別呢?使用引數傳遞,感覺還是需要指定啊,還是有耦合關係啊。

設計模式02 模板設計模式

需求 獲取一段程式執行的時間。原理 獲取程式開始和結束的時間並相減即可。當 完成優化後,就可以解決這類問題。這種方式,模版方法設計模式。什麼是模版方法呢?在定義功能時,功能的一部分是確定的,但是有一部分是不確定,而確定的部分在使用不確定的部分,那麼這時就將不確定的部分暴露出去。由該類的子類去完成。a...

設計模式02 策略模式

場景1 人旅行,set不同的策略實現類,採用對應實現類裡的旅行策略辦法 eg 飛機策略實現類裡的策略方法,乘坐飛機旅行 場景21 如果在乙個系統裡面有許多類,它們之間的區別僅在於它們的行為,那麼使用策略模式可以動態地讓乙個物件在許多行 為中選擇一種行為。2 乙個系統需要動態地在幾種演算法中選擇一種。...

設計模式筆記02

提供訪問集合的方法,並不暴露集合內部 允許客戶使用一致的方式處理物件集合或單個物件。允許物件在執行時不斷發生狀態的變化 狀態模式側重於程式執行時狀態的不斷變化,而策略模式往往只有一種最好的委託模式 包裝乙個物件,提供一些訪問控制 虛擬 大開銷物件,延遲載入 如在物件載入出來前,載入較小物件替代 遠端...