C语言中的类厂(factory)
log4c中的类厂的实现也很有意思。
所为类厂就是可以用它来生产商品(product)。
但并不是一个类厂就可以生产所有的商品。
不同的商品需要不同的类厂,这就需要一个类能够按用户需要来产生类厂。
所以这本身就是一种C语言中的面向对象。
先看一下类厂们共同的操作
fac_new是生产一件商品,对应的还有delete的操作,print估计是调试用的。
有了这个共同的操作,就可以定义类厂结构体了
由上面的结构体,我们可以看出,一个类厂应该有一个名字(fac_name),
还有一组可指定的类厂操作(fac_ops),还有一个存储商品的hash表。
太精秒了,用户只需要负责new和delete操作,其它的工作都由这个抽象的类厂帮你来完成。
看看它都会做哪些操作: