设计模式-用于简单静态数据的C++架构

design patterns - C++ architechture for simple static data

本文关键字:C++ 架构 数据 静态 用于 简单 设计模式      更新时间:2023-10-16

我的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

如果您不考虑Mocking,那么只需使用名称空间来保存函数。例如

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模拟它(例如gmock)。