2014-04-09 44 views
0

architechture我有我的C++項目類似於一些靜態數據:C++進行簡單的靜態數據

static const int kCount = 10000; 
static int data[kCount]; 

我也有一些方法控制訪問這些數據。例如:

// returns count of occurences of n in data 
static int getCount(int n); 

什麼是在這種情況下使用的正確的代碼架構?

我目前使用的命名空間(getCount不是靜態的),但我猜測一個更有經驗的C++程序員可以想出更好的設計。我已經考慮過所有靜態方法的類。然而,在做了一些研究後,聽起來像一個命名空間是首選的方法。

另一個細節:在data上運行的一些方法應該與委託對象通信。我目前正在使用類似IMyData的東西,其中包含一些純虛函數。然後我有static IMyData *delegate

回答

1

如果您不考慮模擬,那麼只需使用命名空間來保存這些函數。例如。

namespace DataCounter { 
    const int kCount = 10000; 
    int data[kCount]; 

    // returns count of occurences of n in data 
    int getCount(int n); 
}; 

然後你可以調用像DataCounter::getCount()這樣的函數。

如果您想使代碼更易於被其他組件測試,請考慮將您的IMyData作爲接口,將其實施爲TMyData,並將其模擬爲IMyDataMock