設計模式-簡單工廠-C++實現
阿新 • • 發佈:2018-12-11
簡單工廠方法:定義一個建立物件的介面,讓子類決定例項化那一個類。框架定義了和維護物件之間的關係,同時物件的產生也是由框架來負責。
場景:
1.當一個類不知道他所必須建立的物件的類的時候;
2.當一個類希望有它的子類指定他所建立的物件的時候。
#include <stdio.h> class IToy { public: virtual void paly() = 0; }; class CatToy :public IToy { public: void paly() { printf("這是一個小貓玩具!\n"); } }; class DogToy :public IToy { public: void paly() { printf("這是一個小狗玩具!\n"); } }; class DuckToy :public IToy { public: void paly() { printf("這是一個小鴨子玩具!\n"); } }; enum ToyType{ TOY_CAT, TOY_DOG, TOY_DUCK, }; class ToyFactory { public: IToy* createToy(ToyType t) { switch(t) { case TOY_CAT: return new CatToy(); break; case TOY_DOG: return new DogToy(); break; case TOY_DUCK: return new DuckToy(); break; default: break; } return nullptr; } }; int main() { ToyFactory* toyFactory = new ToyFactory; IToy*duckToy = toyFactory->createToy(TOY_DUCK); duckToy->paly(); IToy*catToy = toyFactory->createToy(TOY_CAT); catToy->paly(); return 0; }
執行結果: