C语言中的类厂(factory)

来源:互联网 发布:python datetime 秒 编辑:程序博客网 时间:2024/04/29 09:06

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

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


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

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

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

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

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

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

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

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

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

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

第二步,构造结构体


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

原创粉丝点击