【发布时间】:2010-10-23 09:34:17
【问题描述】:
我正在做一个项目,我遇到了以下命名问题。
我想实现工厂模式,但我不知道要使用的最佳类命名(我正在从一个更改为另一个,这非常耗时:S)。
我通常使用命名空间来分隔 组 类,但我的问题 是这段特定的代码:
class Mesh
{
...
};
namespace Factory
{
class Mesh
{
...
};
}
...
Factory::Mesh meshFactory;
Mesh *mesh = meshFactory.create(...);
我的问题是,如果我使用这种结构,我可以混合 Mesh 类(无论是工厂类还是实际的 Mesh 类)。实际上,这是一种简化,我的问题涉及更多的命名空间,并且在两个命名空间中都使用了具有相同名称的类。
我在考虑是否可以使用后缀来分隔类并将它们放在同一个命名空间中,例如:
class Mesh
{
...
};
class MeshFactory
{
...
};
MeshFactory meshFactory;
Mesh *mesh = meshFactory.create(...);
所以每个班级的作用没有混淆。
我不喜欢使用不同名称空间并发明不同名称的简单解决方案,因为我最终会使用名称空间名称来区分它们:
class Mesh
{
...
};
namespace Factory
{
class MeshFactory // I can't figure a better different name
{
...
};
}
我更喜欢第二种选择。
第一个选项更好有充分的理由吗?还是有其他方法?最佳实践对此有何看法?
【问题讨论】:
标签: naming-conventions namespaces