C++實例:大規(guī)模的C++項目代碼層次結構

字號:

1.前言
    C++項目中如果代碼層次結構不好,非常容易變得難以維護。對于規(guī)模較大的項目而言,必須將整個項目劃分成若干模塊進行開發(fā)。
    2.模塊
    模塊包括可執(zhí)行文件,動態(tài)庫和靜態(tài)庫。
    2.1應用層
    最上層為應用層,表現為可執(zhí)行文件。
    本層代碼應主要進行界面控制,盡量不要涉及復雜邏輯。
    2.2動態(tài)庫層
    動態(tài)庫層作為邏輯模塊的主體。采用動態(tài)庫的好處是將復雜應用拆分成可以獨立分發(fā)的子模塊,便于單獨管理。
    使用動態(tài)庫極易陷入動態(tài)庫地獄(dll hell),因此應設法避免動態(tài)庫直接的交叉依賴。原則上我公司開發(fā)的動態(tài)庫,只能依賴于內核層動態(tài)庫,或第三方動態(tài)庫。應用層動態(tài)庫直接不可以相互依賴。
    鑒于上述動態(tài)庫問題,動態(tài)庫層在實際開發(fā)中盡可能少包含源代碼,只包含導出函數列表。函數實現由靜態(tài)庫承擔。
    2.3靜態(tài)庫層
    靜態(tài)庫是真正的模塊層,是代碼重用的基本單元。代碼通過分組,直接編譯成靜態(tài)庫,供其他層使用。