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

字號:

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