网站内容建设需要注意哪些问题,网站开发图片加载过慢如何优化,外网怎么弄,app快速生成平台工厂模式#xff08;Factory Pattern#xff09;是一种创建型设计模式#xff0c;它提供了一种创建对象的最佳方式#xff0c;而无需指定将要创建的对象的确切类。通过使用工厂模式#xff0c;我们可以将对象的创建和使用分离#xff0c;从而使代码更具灵活性和可维护性。…工厂模式Factory Pattern是一种创建型设计模式它提供了一种创建对象的最佳方式而无需指定将要创建的对象的确切类。通过使用工厂模式我们可以将对象的创建和使用分离从而使代码更具灵活性和可维护性。
在工厂模式中通常会有三种角色 工厂接口Factory Interface声明了一个用于创建对象的接口这样所有具体工厂类都必须实现该接口。 具体工厂Concrete Factory实现了工厂接口负责创建具体的产品对象。 产品接口Product Interface声明了产品对象的接口这样具体的产品类都必须实现该接口。 具体产品Concrete Product实现了产品接口是由具体工厂创建的对象。
#include iostream// 产品接口
class Shape {
public:virtual void draw() 0;
};// 具体产品Circle
class Circle : public Shape {
public:void draw() override {std::cout Inside Circle::draw() method. std::endl;}
};// 具体产品Rectangle
class Rectangle : public Shape {
public:void draw() override {std::cout Inside Rectangle::draw() method. std::endl;}
};// 工厂接口
class ShapeFactory {
public:virtual Shape* createShape() 0;
};// 具体工厂CircleFactory
class CircleFactory : public ShapeFactory {
public:Shape* createShape() override {return new Circle();}
};// 具体工厂RectangleFactory
class RectangleFactory : public ShapeFactory {
public:Shape* createShape() override {return new Rectangle();}
};int main(int argc, char *argv[])
{// 使用工厂创建圆形ShapeFactory* circleFactory new CircleFactory();Shape* circle circleFactory-createShape();circle-draw();// 使用工厂创建矩形ShapeFactory* rectangleFactory new RectangleFactory();Shape* rectangle rectangleFactory-createShape();rectangle-draw();delete circleFactory;delete circle;delete rectangleFactory;delete rectangle;return 0;
}/*
在这个示例中Shape 是产品接口Circle 和 Rectangle 是具体产品类ShapeFactory 是工厂接口CircleFactory 和 RectangleFactory 是具体工厂类。通过工厂模式我们可以根据不同的需求使用不同的工厂来创建不同的产品对象而不需要直接使用具体的产品类。工厂模式能够帮助我们遵循开闭原则因为在需要添加新的产品时只需要创建新的具体产品和对应的具体工厂而不需要修改现有的代码。
*/
觉得有帮助的话打赏一下呗。。