一起來學設計模式(5) 介面卡模式

2021-05-27 21:20:30 字數 1343 閱讀 7442

生活中,我們將插頭插在插座上來取電,到了有些國家,插座格式不支援插頭,理論上,可以有以下三種做法:

1. 將插頭改裝一下,使之符合插座;

2. 將插座改裝一下,使之符合插頭;

3. 找乙個介面卡,介於插頭和插座之間;

無疑,前兩種實現方法代價比較大,而且不靈活。比如,採用第一種方法,回國後還得改裝回來。對於第三種方法,即沒有修改現有的物件,也具有很高的靈活性。

具體來說,假設a類使用到了b類提供的方法,當用c類替換b類之後,c類和b類的為a類提供的介面有差別,在不修改a類,也不修改c類的情況下,如何使得a類可以使用c類。

下面就以此為例,來實現相關的**,所採用的模式就是介面卡模式。假設使用者user之前使用的是中國插座,釋放方法是getvalue,美國的插座的使用方法是getnumber,為了不修改user呼叫getvalue方法,建立了乙個介面卡adapter。

/**

* @file adapter.h

* @brief

* @author don hao

* @date 2011-9-1 17:14:51

* @version

*
email:[email protected]
*
company:

*

modification:
*
write modifications here.
*/

#ifndef _adapter_h

#define _adapter_h

class socketusa

};class socketchina

};class adapter : socketchina

int getvalue()

private:

socketusa s;

};class user

};#endif /**< _adapter_h */

/**

* @file adapter.cpp

* @brief

* @author don hao

* @date 2011-9-1 17:14:57

* @version

*
email:[email protected]
*
company:

*

modification:
*
write modifications here.
*/

#include "adapter.h"

void main()

一起來學設計模式(2) 簡單工廠模式

其實,在gof的23種設計模式中,並沒有簡單工廠模式這種說法,為了和工廠模式 抽象工廠模式逐一對比,我們還是先從簡單工廠模式說起。工廠 即用來生產 產品 考慮以下需求 我需要通過乙個類來建立乙個蘋果,或者是建立乙個梨,或者是建立乙個。在上邊的需求中,這個可以建立蘋果 梨 香蕉的類即為簡單工廠類。同時...

設計模式 (5)介面卡模式

介面卡模式 介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法在一起工作的兩個類能夠在一起工作。比如說我的hp筆記本,美國產品,人家美國的電壓是110v的,而我們中國的電壓是220v,要在中國能使用,必須找個變壓器轉一下電壓才可以。這個變壓器就是個介面卡。介面卡模式有...

設計模式《一》介面卡模式

介面卡模式把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本因介面不匹配而無法再一起工作的兩個類能夠在一起工作。通俗地說就是兩個相似功能的介面名字不一樣而客戶端需要他們名字一樣。當開發後期,兩個功能相似的介面因為都不太容易改,或當呼叫別人類似功能的介面時,通過介面卡模式返回客戶端一致的介面。使...