?? abstractfactory.h
字號:
/********************************************************************
created: 2006/07/19
filename: AbstractFactory.h
author: 李創
http://www.cppblog.com/converse/
purpose: AbstractFactory的演示代碼
*********************************************************************/
#ifndef ABSTRACTFACTORY_H
#define ABSTRACTFACTORY_H
// 抽象基類AbstractProductA,代表產品A的抽象
class AbstractProductA
{
public:
AbstractProductA() {}
virtual ~AbstractProductA(){};
};
// 派生類ConcreateProductA1,繼承自AbstractProductA,代表產品A的第一種實現
class ConcreateProductA1
: public AbstractProductA
{
public:
ConcreateProductA1();
virtual ~ConcreateProductA1();
};
// 派生類ConcreateProductA2,繼承自AbstractProductA,代表產品A的第二種實現
class ConcreateProductA2
: public AbstractProductA
{
public:
ConcreateProductA2();
virtual ~ConcreateProductA2();
};
// 抽象基類AbstractProductB,代表產品B的抽象
class AbstractProductB
{
public:
AbstractProductB() {}
virtual ~AbstractProductB(){};
};
// 派生類ConcreateProductB1,繼承自AbstractProductB,代表產品B的第一種實現
class ConcreateProductB1
: public AbstractProductB
{
public:
ConcreateProductB1();
virtual ~ConcreateProductB1();
};
// 派生類ConcreateProductB2,繼承自AbstractProductB,代表產品B的第二種實現
class ConcreateProductB2
: public AbstractProductB
{
public:
ConcreateProductB2();
virtual ~ConcreateProductB2();
};
// 抽象基類AbstractFactory,工廠的抽象類,生產產品A和產品B
class AbstractFactory
{
public:
AbstractFactory(){}
virtual ~AbstractFactory(){}
virtual AbstractProductA* CreateProductA() = 0;
virtual AbstractProductB* CreateProductB() = 0;
};
// 派生類ConcreateFactory1,繼承自AbstractFactory
// 生產產品A和產品B的第一種實現
class ConcreateFactory1
: public AbstractFactory
{
public:
ConcreateFactory1();
virtual ~ConcreateFactory1();
virtual AbstractProductA* CreateProductA();
virtual AbstractProductB* CreateProductB();
};
// 派生類ConcreateFactory2,繼承自AbstractFactory
// 生產產品A和產品B的第二種實現
class ConcreateFactory2
: public AbstractFactory
{
public:
ConcreateFactory2();
virtual ~ConcreateFactory2();
virtual AbstractProductA* CreateProductA();
virtual AbstractProductB* CreateProductB();
};
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -