本文主要是介绍C++实现简单工厂模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
概述 |
简单工厂模式是用单独的类来创建其它类的实例的一种创建型模式。
简单工厂模式实质是工厂类根据传入的参数,来动态决定创建哪一个产品的实例
优点 |
-
客户端与具体实现类解耦
-
不用考虑对象的创建过程
缺点 |
-
简单工厂模式,增加功能是通过修改源代码实现,不符合开闭原则
-
这个类的职责过重,这个类发生问题,会影响很多使用这个工厂的模块
使用场景 |
-
工厂类负责创建的产品类比较少,并且创建的产品不经常变更
-
客户端需要知道传入工厂类的参数,不需要关心如何创建对象
UML类图 |
实例 |
//抽象车class AbstractCar{public:virtual void run() = 0;};//BMWclass BMW : public AbstractCar{public:virtual void run(){std::cout << "BMW run!" << std::endl;}};//BenZclass BenZ : public AbstractCar{public:virtual void run(){std::cout << "BenZ run!" << std::endl;}};//汽车工厂class CarFactory{public:static AbstractCar* CreateCar(string car){if( "BMW" == car){return new BMW;}else if( "BenZ" == car){return new BenZ;}else{return NULL;}}};void test01(){CarFactory* factory = new CarFactory;AbstractCar* car = factory->CreateCar("BMW");car->run();delete car;car = NULL;car = factory->CreateCar("BenZ");car->run();delete car;car = NULL;delete factory;factory = NULL;}int main(){test01();return 0;}
这篇关于C++实现简单工厂模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!