【C++设计模式】创建型模式 — 工厂方法模式
2023-09-14 09:14:31 时间
目录
1、工厂方法模式介绍
工厂方法模式同样属于类的创建型模式又被称为多态工厂模式 。
工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。
核心工厂类不在负责产品的创建,成为一个抽象的工厂。其子工厂类要继承核心工厂类。
职责与角色
抽象工厂(Creator)角色
工厂方法模式的核心,任何工厂类都必须实现这个接口。
具体工厂( Concrete Creator)角色
具体工厂类是抽象工厂的一个实现,负责实例化产品对象。
抽象(Product)角色
工厂方法模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
具体产品(Concrete Product)角色
工厂方法模式所创建的具体实例对象
2、实例
#include <iostream>
using namespace std;
class Fruit {
public:
virtual void sayname()
{
cout << "fruit\n";
}
};
class FruitFactory {
public:
virtual Fruit* getFruit()
{
return new Fruit();
}
};
class Banana : public Fruit {
public:
virtual void sayname()
{
cout << "Banana\n";
}
};
class BananaFactory : public FruitFactory {
public:
virtual Fruit* getFruit()
{
return new Banana;
}
};
class Apple : public Fruit {
public:
virtual void sayname()
{
cout << "Apple\n";
}
};
class AppleFactory : public FruitFactory {
public:
virtual Fruit* getFruit()
{
return new Apple;
}
};
int main() {
FruitFactory *f = NULL;
Fruit *fruit = NULL;
f = new BananaFactory();
fruit = f->getFruit();
fruit->sayname();
f = new AppleFactory();
fruit = f->getFruit();
fruit->sayname();
delete fruit;
delete f;
return 0;
}
相关文章
- c++语言截取字符串,详解C++ string常用截取字符串方法
- c++ set集合的使用方法详解
- pip 安装 torch 报错Microsoft Visual C++ Redistributable is not installed
- c++中按位取反_取反和按位取反
- c++ auto类型_auto C++
- C++智能指针详解(共享指针,唯一指针,自动指针)
- C++ 中的复数
- C/C++ 动态解密释放ShellCode
- C/C++ 遍历任务栏托盘图标
- C++程序设计 第三章 习题
- 【C++ 语言】面向对象 ( 继承 | 重写 | 子类调用父类方法 | 静态多态 | 动态多态 | 虚函数 | 纯虚函数 )
- C++中的类型转换方法详解编程语言
- C++类成员的访问范围(C++ private、public、protected)
- C++ map的创建(STL map的创建)详解
- Linux C编译:掌握常用命令,提高开发效率(linux c++ 编译)
- 存储过程C调用Oracle存储过程的简便方法(c++ 调用oracle)
- 从C到MySQL汉字计算机编码的探索(c++ mysql 汉字)
- C++中dynamic_cast<>的使用方法小结
- C++关于STL中sort()对struct排序的方法
- VC++实现程序开机启动运行的方法
- C++中fstream,ifstream及ofstream用法浅析
- C++与C#互调dll的实现步骤
- C++类中的static和const用法实例教程
- C++实现将一个字符串中的字符替换成另一个字符串的方法