C++自动工厂类设计模式
时间: 2023-10-11 10:09:52 浏览: 168
C语言并不像面向对象语言那样有类和对象的概念,但是可以使用结构体来模拟类的概念。在C语言中,可以使用工厂设计模式来创建一个自动工厂类。
自动工厂类是一个创建对象的类,它将对象的创建过程封装在一个函数中,这个函数接收一些参数并返回一个新的对象。下面是一个简单的例子,展示如何使用工厂设计模式来创建一个自动工厂类:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个产品结构体
typedef struct {
int id;
char name[20];
float price;
} Product;
// 定义一个工厂函数,用于创建新的产品
Product* createProduct(int id, char* name, float price) {
Product* product = malloc(sizeof(Product));
product->id = id;
strcpy(product->name, name);
product->price = price;
return product;
}
int main() {
// 使用工厂函数创建新的产品
Product* product1 = createProduct(1, "product1", 10.0);
Product* product2 = createProduct(2, "product2", 20.0);
// 输出产品信息
printf("Product1: id=%d, name=%s, price=%.2f\n", product1->id, product1->name, product1->price);
printf("Product2: id=%d, name=%s, price=%.2f\n", product2->id, product2->name, product2->price);
// 释放内存
free(product1);
free(product2);
return 0;
}
```
在这个例子中,我们定义了一个产品结构体,并且使用工厂函数`createProduct`来创建新的产品。`createProduct`函数接收三个参数:产品ID、产品名称和产品价格,并返回一个指向新产品的指针。在`main`函数中,我们使用工厂函数来创建两个新产品,并输出它们的信息。最后,我们释放了这些产品占用的内存。
这个例子只是一个简单的示例,工厂设计模式可以应用于更复杂的场景中,例如创建不同类型的对象或者使用参数来配置对象。
阅读全文