抽象工厂

来源:互联网 发布:北京婚纱照 知乎 编辑:程序博客网 时间:2024/06/16 10:32
//工厂方法只用于创建lenovo一个类型的电脑//抽象工厂却可以生产一个产品族#include <iostream>using namespace std;class Product{public:    Product(){}    virtual ~Product() = 0;};Product::~Product(){}class Lenovo:public Product{public:    Lenovo(){cout << "a Lenovo computer created" << endl;}    ~Lenovo(){cout << "a Lenovo computer destoryed" << endl;}};class HighLenovo:public Lenovo{public:    HighLenovo(){cout << "a HighLenovo computer created" << endl;}    ~HighLenovo(){cout << "a HighLenovo computer destoryed" << endl;}};class Asus:public Product{public:    Asus(){cout << "a Asus computer created" << endl;}    ~Asus(){cout << "a Asus computer destoryed" << endl;}};class HighAsus:public Asus{public:    HighAsus(){cout << "a HighAsus computer created" << endl;}    ~HighAsus(){cout << "a HighAsus computer destoryed" << endl;}};class Factory{public:    Factory(){}    virtual ~Factory(){}    virtual Product* createLenovo() = 0;    virtual Product* createAsus() = 0;};class HighComputerFctory:public Factory{public:    HighComputerFctory(){}    ~HighComputerFctory(){}    Product* createLenovo(){        return new HighLenovo();    }    Product* createAsus(){        return new HighAsus();    }};int main(){    //根据具体的需要创建具体的工厂    Factory* f = new HighComputerFctory;    //调用接口创建产品    Product* l = f->createLenovo();    Product* a = f->createAsus();    delete a;    delete l;    delete f;    return 0;}

这里写图片描述

原创粉丝点击