<分区>
我正在开发一个 C++ 库,提供与图像/信号处理和其他相关的不同功能。它基本上是供开发人员进一步使用的开发库。我希望它尽可能方便易用。我有 3 种不同的模型:
模型 1:
包含库所有功能的单个大型命名空间。例如,C++ 标准库在 namespace std
中实现。或者 OpenCV 在 namespace cv
中实现。
namespace library
{
//all classes, variables, functions, datatypes are present inside this namespace
}
模型 2:
父命名空间,根据功能进一步 segmentation 为子命名空间。例如 .NET Framework 的父 namespace System
包含 namespace Collections
、namespace Windows
等...
namespace library
{
//datatypes go here
namespace group1
{
//functions related to group 1
}
namespace group2
{
//functions related to group 2
}
.
.
.
}
模型 3:
几乎与模型 2 相同,但包含函数作为类的 static
成员而不是 namespace 。
namespace library
{
//datatypes go here
class group1
{
public:
static function1();
static function2();
}
class group2
{
public:
static function1();
static function2();
}
}
我需要推荐这些设计模型中哪一个是最好的?还有其他更好的方法吗? 目前我对第二种模式感到满意。