Factory模式

 

//Product.h

#ifndef _PRODUCT_H

#define _PRODUCT_H

 

class Product

{

public:

        virtual ~Product() = 0;

protected:

        Product();

private:

        ... ...

};

 

class ConcreteProduct: Product

{

public:

        ConcreteProduct();

        ~ConcreteProduct();

protected:

        ... ...

private:

        ... ...

};

#endif

 

//Product.cpp

#include "Product.h"

#include <iostream>

using namespace std;

 

Product::Product()

{}

Product::~Product()

{}

ConcreteProduct::ConcreteProduct()

{

        cout<<"ConcreteProduct..." << endl;

}

ConcreteProduct::~ConcreteProduct()

{}

 

//Factory.h

#ifndef _FACTORY_H

#define _FACTORY_H

 

class Product;

 

class Factory

{

public:

        virtual ~Factory() = 0;

         virtual Product * ConcreteProduct() = 0;

protected:

        Factory();

private:

        ... ...

};

 

class ConcreteFactory: Factory

{

public:

        ConcreteFactory();

        ~ConcreteFactory();

         Product * ConcreteProduct();

protected:

        ... ...

private:

        ... ...

};

#endif

 

//Factory.cpp

#include "Factory.h"

#include "Product.h"

#include <iostream>

using namespace std;

 

Factory::Factory()

{}

Factory::~Factory()

{}

ConcreteFactory::ConcreteFactory()

{

        cout << "ConcreteFactory..." << endl;

}

ConcreteFactory::~ConcreteFactory()

{}

Product * ConcreteFactory::ConcreteProduct()

{

        return new ConcreteProduct();

}

 

//main.cpp

#include "Product.h"

#include "Factory.h"

#include <iosteam>

using namespace std;

 

int main(int argc, char *argv[])

{

        Factory *fac = new ConcreteFactory();

         Product *p = fac->ConcreteProduct();

        return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值