【C++设计模式之工厂方法模式】分析及示例

C++设计模式之工厂方法模式

      • 简介
      • 原理
      • 示例
        • 定义产品类
        • 定义工厂类
        • 客户端使用
      • 结论

简介

工厂方法模式(Factory Method Pattern)是一种常用的对象创建型设计模式,它的作用是定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法模式使一个类的实例化延迟到其子类。

原理

工厂方法模式的核心思想是将对象的创建和使用分离开来。工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪个类。也就是说,客户端只需要知道所需产品的工厂,而不需要知道具体的产品类。

示例

以创建不同类型的汽车为例,实现一个简单的工厂方法模式。

定义产品类
class Car {
public:
    virtual void run() = 0;
};

class BenzCar : public Car {
public:
    virtual void run() {
        std::cout << "Benz Car is running." << std::endl;
    }
};

class BmwCar : public Car {
public:
    virtual void run() {
        std::cout << "BMW Car is running." << std::endl;
    }
};
定义工厂类
class CarFactory {
public:
    virtual Car* createCar() = 0;
};

class BenzCarFactory : public CarFactory {
public:
    virtual Car* createCar() {
        return new BenzCar();
    }
};

class BmwCarFactory : public CarFactory {
public:
    virtual Car* createCar() {
        return new BmwCar();
    }
};
客户端使用
CarFactory* factory = new BenzCarFactory();
Car* car = factory->createCar();
car->run();

结论

工厂方法模式通过面向对象的方式,将对象的创建和使用分离开来,从而达到了解耦的目的。工厂方法模式使得客户端无需关心具体的产品类,只需要知道所需产品的工厂即可。同时,工厂方法模式具有良好的扩展性,在增加新的产品类时,只需要添加一个新的具体工厂类即可。

你可能感兴趣的:(设计模式之C++,c++,Qt记录,c++,设计模式,工厂方法模式)