介面卡模式將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。在使用乙個已經存在的類時,如果它的介面,也就是方法和你的要求不同時,就應該考慮用介面卡模式。
下面是介面卡的結構圖:
**如下:
class player
virtual ~player() {}
virtual
void attack() {}
virtual
void defense() {}
};
class forwards: public player
~forwards()
virtual
void attack()
virtual
void defense()
};
class guards : public player
~guards()
virtual
void attack()
virtual
void defense()
};
class translator : public player
~translator() {}
virtual
void attack()
virtual
void defense()
private:
foreigncenter center;
};
int _tmain(int _tmain(int argc, tchar* argv))
if (pguard)
if (pcenter)
}
執行結果如下:
Design Pattern之策略模式
策略模式 strategy 它定義了演算法家族,分別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的客戶。策略模式就是用來封裝演算法的,實踐中,我們發現可以用它來封裝幾乎任何型別的規則,只要在分析過程中聽到需要在不同時間應用不同的業務規則,就可以考慮使用策略模式處理這種...
Design Pattern之模板方法模式
模板方法模式,定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。abstractclass實現了乙個模板方法,定義了演算法的骨架,具體子類將重定義primitiveoperation以實現乙個演算法的步驟。concre...
Design Pattern之工廠方法模式
在本文之前,已經介紹過簡單工廠模式,簡單工廠模式只有乙個工廠,該工廠負責產生所有的運算類,如果增加乙個運算類,不僅需要修改工廠類,還需要修改客戶端類,這違反了設計模式所提倡的開放 封閉原則。本文所說的工廠方法模式就是在之前的簡單工廠模式前提下增加了各種運算方法的工廠類,uml圖如下 相比較簡單工廠模...