【C++设计模式之工厂方法模式】分析及示例
  yQAl4kecrO8W 2023年12月22日 38 0



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();

结论

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


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月22日 0

暂无评论

推荐阅读
  8Tw5Riv1mGFK   18天前   29   0   0 C++
  BYaHC1OPAeY4   11天前   31   0   0 C++
  yZdUbUDB8h5t   14天前   21   0   0 C++
  oXKBKZoQY2lx   2天前   6   0   0 C++
yQAl4kecrO8W