设计模式的自我感受

一、Factory模式的作用:

1、定义创建对象的接口,封装了对象的创建

2、使得具体化类的工作延迟到子类中。

完整实例话代码:

代码片段1:product.h

//Product.h

#ifndef _PRODUCT_H_

#define _PRODUCT_H_


class Product

{

public:

virtual ~Product()=0;

protected:

Product();

private:

};

class ConcreteProduct:public Product

{

public:

~ConcreteProduct();

ConcreteProduct();

protected:

private:

};


代码片段2:Product.cpp

//Product.cpp

#include "Product.h"

#include <iostream>

using namespace std;

Product::Product()

{

}

Product::~Product()

{

}

ConcreteProduct::ConcreteProduct()

{

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

}

ConcreteProduct::~ConcreteProduct()

{

}


代码片段3:Factory.h

//Factory.h

#ifndef _FACTORY_H_

#define _FACTORY_H_

class Product;

class Factory

{

public:

virtual ~Factory()=0;

virtual Product* CreateProduct()=0;

protected:

Factory();

private:

};

class ConcreteFactory:public Factory

{

public:

~ConcreteFactory();

ConcreteFactory();

Produt* CreateProduct();

private:

};

代码片段4:Factory.cpp

//Factory.cpp

#include "Product.h"

#include "Factory.h"

#include <iostream>

using namespace std;

Factory::Factory()

{

}

Factory::~Factory();

{

}

ConcreteFactory::ConcreteFactory()

{

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

}

ConcreteFactory::~ConcreteFactory()

{

}

Product* ConcreteFactory::CreateProduct()

{

return new ConcreteProduct();

}


代码片段5:main.cpp

//main.cpp

#include "Factory.h"

#include "Product.h"

#include <iostream>

usinf namespace std;

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

{

Factory* fac=new ConcreteFactory();

Product* p=fac->CreateProduct();

return 0;

}


二、AbstractFactory类

AbstractFactory模式:创建一组相关或者相互依赖的对象。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值