C语言中怎么实现简单工厂模式
简单工厂模式概述
简单工厂模式是一种创建型设计模式,它封装了对象的具体创建逻辑,通过一个共同的工厂类来创建不同类型的对象。该模式使得系统可以在不知道具体产品类的情况下创建对象。简单工厂模式通常包含三个角色,分别是工厂类(SimpleFactory)、抽象产品类(Product)和具体产品类(ConcreteProduct)。
简单工厂模式实现步骤
要实现简单工厂模式,可以按照以下步骤进行:
1. 定义一个抽象产品类(Product),定义产品的公共接口,该接口将由具体产品类实现。
2. 创建具体产品类(ConcreteProduct),实现抽象产品类定义的接口。
3. 创建工厂类(SimpleFactory),该类通常包含一个静态方法或者工厂方法,用于根据不同的条件来创建具体产品对象。
示例代码
下面是一个简单的示例代码,演示了如何使用简单工厂模式来创建不同类型的计算器对象:
#include<stdio.h>
// 抽象产品类
typedef struct _Calculator {
int (*calculate)(int, int);
} Calculator;
// 具体产品类
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
// 简单工厂类
Calculator* createCalculator(char operator) {
Calculator* calculator = NULL;
switch (operator) {
case '+':
calculator = (Calculator*)malloc(sizeof(Calculator));
calculator->calculate = add;
break;
case '-':
calculator = (Calculator*)malloc(sizeof(Calculator));
calculator->calculate = subtract;
break;
default:
printf("Unsupported operator\n");
break;
}
return calculator;
}
int main() {
char operator;
printf("Enter operator (+ or -): ");
scanf("%c", &operator);
Calculator* calculator = createCalculator(operator);
if (calculator != NULL) {
int a, b;
printf("Enter two numbers: ");
scanf("%d %d", &a, &b);
int result = calculator->calculate(a, b);
printf("Result: %d\n", result);
}
return 0;
}该示例代码中,先定义了一个抽象产品类 Calculator,其中包含一个指向计算方法的函数指针。然后,定义了两个具体产品类 add 和 subtract,分别实现了 Calculator 的 calculate 方法。最后,在简单工厂类 createCalculator 中,根据不同的运算符创建不同的具体产品对象,并返回相应的对象指针。在主函数中,通过用户输入的运算符创建相应的计算器对象,然后根据用户输入的两个数执行对应的计算操作并输出结果。
猜您想看
-
mac如何安装web3j
什么是Web3...
2023年07月23日 -
如何使用 LEDE 路由器进行远程访问?
LEDE路由器...
2023年04月17日 -
Windows存储容量的基本单位是字吗
Windows...
2023年07月22日 -
Linux命令su、sudo、sudo su、sudo -i使用方法和区别是什么
1.su命令s...
2023年05月22日 -
PyTorch reduction的作用是什么
作用在使用Py...
2023年07月22日 -
Hbase的某Region长期处于RIT状态怎么解决
1.RIT状态...
2023年05月26日