1. 程式人生 > >c++建立型設計模式--工廠模式--工廠方法(單個產品的構建--對簡單工廠的改善)

c++建立型設計模式--工廠模式--工廠方法(單個產品的構建--對簡單工廠的改善)

主要是修改了簡單工廠不符合開閉原則的限制
基類和子類與簡單工廠一致
工廠方法類

#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");
}

測試結果
測試結果