gpt4 book ai didi

naming-conventions - 如果我在不同的命名空间上有相同的类名怎么办?

转载 作者:行者123 更新时间:2023-12-04 17:05:10 26 4
gpt4 key购买 nike

我正在做一个项目,遇到了以下命名问题。

我想实现工厂模式,但我不知道要使用的最佳类命名(我正在从一个更改为另一个,这非常耗时: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)的工作都没有混淆。

我不喜欢使用不同 namespace 并发明不同名称的简单解决方案,因为我最终会使用 namespace 名称来区分它们:
class Mesh
{
...
};
namespace Factory
{
class MeshFactory // I can't figure a better different name
{
...
};
}

我更喜欢第二种选择。

是否有充分的理由为什么第一个选择更好?或者还有其他方法吗?最佳实践对此有何看法?

最佳答案

请记住 OO 设计中“最佳实践”的黄金法则:命名您的类很容易占设计解决方案的 50%。如果您在命名实体时遇到问题,则表明您的头脑中没有清晰的概念模型。

关于naming-conventions - 如果我在不同的命名空间上有相同的类名怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/816088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com