C++ 23种设计模式
- [■ 创建型模式(5种)](#■ 创建型模式(5种))
-
- [■ 工厂模式](#■ 工厂模式)
- [■ 抽象工厂模式](#■ 抽象工厂模式)
- [■ 原型模式](#■ 原型模式)
- [■ 单例模式](#■ 单例模式)
- [■ 建造者模式](#■ 建造者模式)
- [■ 结构型模式(7种)](#■ 结构型模式(7种))
-
- [■ 适配器模式](#■ 适配器模式)
- [■ 桥接模式](#■ 桥接模式)
- [■ 组合实体模式](#■ 组合实体模式)
- [■ 装饰器模式](#■ 装饰器模式)
- [■ 外观模式](#■ 外观模式)
- [■ 享元模式](#■ 享元模式)
- [■ 代理模式](#■ 代理模式)
- [■ 行为型模式(11种)](#■ 行为型模式(11种))
-
- [■ 责任链模式](#■ 责任链模式)
- [■ 中介者模式](#■ 中介者模式)
- [■ 策略模式](#■ 策略模式)
- [■ 模板模式](#■ 模板模式)
- [■ 状态模式](#■ 状态模式)
- [■ 观察者模式](#■ 观察者模式)
- [■ 备忘录模式](#■ 备忘录模式)
- [■ 命令模式](#■ 命令模式)
- [■ 访问者模式](#■ 访问者模式)
- [■ 解释器模式](#■ 解释器模式)
- [■ 迭代器模式](#■ 迭代器模式)
■ 创建型模式(5种)
■ 工厂模式
示例一:
cpp
#include<iostream>
#include<string>
using namespace std;
enum CTYPE{COREA,COREB};
//定义一个基类单核
class SingleCore
{
public:
virtual void show() = 0;
};
//单核A
class SingleCoreA:public SingleCore
{
public:
void show() {
cout << "SingleCore A" << endl;
}
};
//单核B
class SingleCoreB:public SingleCore
{
public:
void show() {
cout << "SingleCore B" << endl;
}
};
//唯一的工厂,可以生成A、B两种处理器核,在内部判断
class Factory {
public:
//基类的对象指针指向子类的对象,也就是多态
SingleCore* CreateSingleCore(CTYPE ctype)
{
//工厂内部判断
if (ctype == COREA)
{
//生产核A
return new SingleCoreA();
}
else if (ctype == COREB)
{
//生产核B
return new SingleCoreB();
}
else {
return NULL;
}
}
};
int main()
{
Factory* factor = new Factory();
factor->CreateSingleCore(COREA)->show();
getchar();
return 0;
}