摘要: 本文討論一種簡單卻有效的插件體系結構,它使用C++,動態鏈接庫,基于面向對象編程的思想。
首先來看一下使用插件機制能給我們帶來哪些方面的好處,從而在適當時候合理的選擇使用。
1, 增強代碼的透明度與一致性:因為插件通常會封裝第三方類庫或是其他人編寫的代碼,需要清晰地定義出接口,用清晰一致的接口來面對所有事情。你的代碼也不會被轉換程序或是庫的特殊定制需求弄得亂七糟。
2, 改善工程的模塊化:你的代碼被清析地分成多個獨立的模塊,可以把它們安置在子工程中的文件組中。這種解耦處理使得創建出的組件更加容易重用。
3, 更短的編譯時間:如果僅僅是為了解釋某些類的聲明,而這些類內部使用了外部庫,編譯器不再需要解析外部庫的頭文件了,因為具體實現是以私有的形式完成。
4, 更換與增加組件:假如你需要向用戶發布補丁,那么更新單獨的插件而不是替代每一個安裝了的文件更為有效。當使用新的渲染器或是新的單元類型來擴展你的游戲時,能過向引擎提供一組插件,可以很容易的實現。
5, 在關閉源代碼的工程中使用GPL代碼:一般,假如你使用了GPL發布的代碼,那么你也需要開放你
閱讀全文