设计模式学习(C++实现)1——工厂模式

来源:互联网 发布:node.js是js吗 编辑:程序博客网 时间:2024/06/02 04:38

  如字面意思所述,工厂模式即设计一个工厂,使用者不需要关心工厂内部的实现过程,只需要通过相应的接口来得到想要的产品,例如一个shape工厂,可以生产circle、rectangle、square,在应用中只需要生成一个工厂类,就可以通过这个工厂类的接口来生成不同的产品:
  

class Shape {public:    virtual void draw() = 0;};class Circle :public Shape{public:    void draw() override {        cout << "this is a Circle" << endl;    }};class Rectangle :public Shape {public:    void draw() override {        cout << "this is a Rectangle" << endl;    }};class Square :public Shape {public:    void draw() override {        cout << "this is a Square" << endl;    }};class ShapeFactory {public:    Shape* getShape(const string &pattern) const {        if (pattern.empty())            return nullptr;        if (pattern == "Circle")            return new Circle;        else if (pattern == "Rectangle")            return new Rectangle;        else if (pattern == "Square")            return new Square;        return nullptr;    }};int main() {    ShapeFactory SF;    Shape* shape = SF.getShape("Circle");    shape->draw();    system("pause");}
原创粉丝点击