c++建立型設計模式--工廠模式--工廠方法(單個產品的構建--對簡單工廠的改善)
阿新 • • 發佈:2019-01-02
主要是修改了簡單工廠不符合開閉原則的限制
基類和子類與簡單工廠一致
工廠方法類
#pragma once #include "CarBaseExtens.hpp" #include <memory> class CarFacotryMethod { public: template<class T> static std::shared_ptr<CarBase> Create() { return std::make_shared<T>(); } static void Test() { auto car= CarFacotryMethod::Create<GMCar>(); car->PrintName(); car=CarFacotryMethod::Create<FordCar>(); car->PrintName(); car = CarFacotryMethod::Create<ToyotaCar>(); car->PrintName(); } };
測試呼叫
#include "Manager.hpp"
#include "CarFactory.hpp"
#include "CarFactoryMethod.h"
void main() {
//CarFactory::TEST();
CarFacotryMethod::Test();
system("pause");
}
測試結果