c++创建型设计模式--工厂模式--工厂方法(单个产品的构建--对简单工厂的改善)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/river472242652/article/details/83022125

主要是修改了简单工厂不符合开闭原则的限制
基类和子类与简单工厂一致
工厂方法类

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

测试结果
测试结果

猜你喜欢

转载自blog.csdn.net/river472242652/article/details/83022125
今日推荐