設計模式-抽象工廠-C++實現
阿新 • • 發佈:2018-12-11
抽象工廠:提供一個建立物件的介面,讓建立的建立延遲到具體的工廠類中。
場景:
1.一個系統要獨立於它的產品的建立、組合和表示時;
2.提供一個產品類庫,只想顯示他們的介面而不是實現時;
3.強調一系列相關的產品物件的設計以便於進行聯合使用時。
#include <stdio.h> //產品基類-汽車 class Car { public: virtual void carInfor() = 0; }; class BMWCar :public Car { public: void carInfor() { printf("這是一輛寶馬車!\n"); } }; class DaziCar :public Car { public: void carInfor() { printf("這是一輛大眾車!\n"); } }; //工廠基類-汽車工廠 class CarFactory { public: virtual Car *createCar() { return nullptr; } }; class BMWFactory :public CarFactory { public: Car* createCar() { return new BMWCar; } }; class DaziFactory :public CarFactory { public: Car* createCar() { return new DaziCar; } }; int main() { BMWFactory* bmwFactory = new BMWFactory; Car* bmw = bmwFactory->createCar(); bmw->carInfor(); DaziFactory* daziFactory = new DaziFactory; Car* dazi = daziFactory->createCar(); dazi->carInfor(); return 0; }
執行結果: