设计模式之工厂模式

抽象工厂
工厂模式:统一了接口,但是违背了开闭原则(开放扩展,关闭修改)

抽象工厂模式UML表示

#include<iostream>

using namespace std;

class product{
    public:
        virtual void Do(){
            cout << "product Do\n";
        }
};
class productA : public product{
    public :
        void Do(){
            cout << "productA\n";
        }
};
class productB : public product{
    public :
        void Do(){
            cout << "productB\n";
        }
};
class productC : public product{
    public :
        void Do(){
            cout << "productC\n";
        }
};
class Factory{
    private :
        product * pdt;
    public :
        Factory(product * pdt){
            this->pdt = pdt;
        }
        ~ Factory(){

        }
        void MakeProduct(){
            pdt->Do();
        }

};

int main(void){
    Factory * f1 = new Factory(new productB());
    f1->MakeProduct();
    Factory * f2 = new Factory(new productA());
    f2->MakeProduct();
    return 0;
}
发布了31 篇原创文章 · 获赞 17 · 访问量 4万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览