工廠模式,策略模式,介面卡模式

2021-07-06 07:58:22 字數 1332 閱讀 8281

今天一下介紹三種設計模式,這樣面試的時候就不怕被問了!

首先是工廠模式,工廠模式分為簡單工廠模式,工廠方法模式,抽象工廠模式;

1,簡單工廠模式,他的主要的特點是需要在工廠中做判斷,從而創造相應的產品。當增加新的產品時,就需要修改工廠類。

以怪獸來做例子:   

enum monstertype ;

class monster

;//怪獸a

class monstera: public monster

;class monster

;//怪獸a

class monstera: public monster

;class firstmonstera: public firstmonster

;//三種具體的怪獸

class monstera: public monster

~getmonster()

void move()

};int main()

第一種方法暴露了太多的細節;下面看第2種方法,也是直接通過引數指定,只不過不是傳入指標,而是乙個標籤,也就是怪獸對應的型別,不需要知道怪獸的定義;

看**:

//怪獸的型別

enum monstertype ; //標籤

class getmonster

~getmonster()

void move()

};int main()

上面的建構函式都需要行參,下面給出第三種實現,用模版;

通過模版的實參指定,在策略模式中,引數的傳遞無法避免,客戶必須制定某種怪獸;

template class getmonster

~getmonster()

void move()

};int main()

------------------------------華麗的分割線--------------------------------

下面介紹第三種模式:介面卡模式

介面卡模式將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能在一起工作的那些類可以一起工作,它包括類介面卡和物件介面卡,本文針對的是物件介面卡。舉例來說,在stl中的雙端佇列扮演著介面卡的角色,佇列用到了他的後端插入,前端刪除;而棧則用到了他的後端插入,後端刪除;

就以雙端佇列來講,看**:

//雙端佇列

class deque

設計模式 策略模式與介面卡模式

某移動支付系統 paysystem 在實現賬戶資金轉入和轉出時需進行身份驗證,該系統為使用者提供了多種身份驗證方式,例如密碼驗證 passwordvalidator 指紋驗證 fingerprintvalidator 等,將來可能還會增加新的驗證方式。該系統在實現指紋驗證時需要呼叫手機自帶的指紋識別...

設計模式之介面卡模式(類介面卡模式)

介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...

設計模式 介面卡模式 類介面卡 物件介面卡

乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...