C语言中的类厂(factory)

本文介绍了C语言中实现类工厂模式的概念和操作,包括类工厂的结构体定义、操作函数以及如何使用类工厂创建和管理对象。通过示例展示了如何定义类工厂操作结构体并构造具体类工厂,强调了C语言中的面向对象思想。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言中的类厂(factory)
log4c中的类厂的实现也很有意思。
所为类厂就是可以用它来生产商品(product)。
但并不是一个类厂就可以生产所有的商品。
不同的商品需要不同的类厂,这就需要一个类能够按用户需要来产生类厂。
所以这本身就是一种C语言中的面向对象。

先看一下类厂们共同的操作


fac_new是生产一件商品,对应的还有delete的操作,print估计是调试用的。

有了这个共同的操作,就可以定义类厂结构体了

由上面的结构体,我们可以看出,一个类厂应该有一个名字(fac_name),
还有一组可指定的类厂操作(fac_ops),还有一个存储商品的hash表。
太精秒了,用户只需要负责new和delete操作,其它的工作都由这个抽象的类厂帮你来完成。
看看它都会做哪些操作:

这是新建一个类厂,而不是生成商品哦!

这是删除一个类厂,包括所有的商品。

这是获得类厂,依据名字。

这是一个商品,依据名字。

这是打印所有的类厂及其商品。

这是列出所有的类厂及其商品。

这个类厂抽象类如何使用呢?很简单第一步还是先根据自己的需要定义类厂操作:

第二步,构造结构体


小结
这个类厂抽象类是典型的C语言中的面向对象的一种应用,也比较实用,需要细细体会。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值