c語言中的類廠(factory)
log4c中的類廠的實現也很有意思。
所為類廠就是可以用它來生產商品(product)。
但並不是乙個類廠就可以生產所有的商品。
不同的商品需要不同的類廠,這就需要乙個類能夠按使用者需要來產生類廠。
所以這本身就是一種c語言中的物件導向。
先看一下類廠們共同的操作
fac_new是生產一件商品,對應的還有delete的操作,print估計是除錯用的。
有了這個共同的操作,就可以定義類廠結構體了
由上面的結構體,我們可以看出,乙個類廠應該有乙個名字(fac_name),
還有一組可指定的類廠操作(fac_ops),還有乙個儲存商品的hash表。
太精秒了,使用者只需要負責new和delete操作,其它的工作都由這個抽象的類廠幫你來完成。
看看它都會做哪些操作:
這是新建乙個類廠,而不是生成商品哦!
這是刪除乙個類廠,包括所有的商品。
這是獲得類廠,依據名字。
這是乙個商品,依據名字。
這是列印所有的類廠及其商品。
};小結
這個類廠抽象類是典型的c語言中的物件導向的一種應用,也比較實用,需要細細體會。
C語言中的物件導向 C語言中的類模擬
在物件導向的語言裡面,出現了類的概念。這是程式設計思想的一種進化。所謂類 是對特定資料的特定操作的集合體。所以說類包含了兩個範疇 資料和操作。而c語言中的struct僅僅是資料的集合。li 1978 163.com 1 例項 下面先從乙個小例子看起 ifndef c class define c c...
C語言中的類模擬(C 程式設計思想)
在物件導向 1 例項 下面先從乙個小例子看起 ifndef c class define c class struct endif c class a c class b void b f2 c class b bthis void a foo c class a athis void b foo ...
C語言中的類模擬和多型
1 例項 下面先從乙個小例子看起 ifndef c class define c class struct endif c class a c class b void b f2 c class b bthis void a foo c class a athis void b foo c clas...