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)庫,供其他層使用。
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)庫,供其他層使用。