Ich arbeite an einem Projekt und ich kam zu dem folgenden Namensproblem.Was soll ich tun, wenn ich denselben Klassennamen für verschiedene Namespaces verwende?
Ich möchte das Fabrikmuster implementieren, aber ich kenne nicht die besten Klassenbenennungen (ich wechsele von einem zum anderen und es ist ziemlich zeitaufwendig: S).
Ich gehe in der Regel für Namespaces Gruppen von Klassen zu trennen, aber mein Problem ist mit diesem speziellen Stück Code:
class Mesh
{
...
};
namespace Factory
{
class Mesh
{
...
};
}
...
Factory::Mesh meshFactory;
Mesh *mesh = meshFactory.create(...);
Mein Problem ist, dass ich kann, wenn ich diese Struktur verwenden Verwechseln Sie die Mesh-Klassen (ob es sich um die Factory-Klasse oder die tatsächliche Mesh-Klasse handelt). Eigentlich ist dies eine Vereinfachung, mein Problem beinhaltet einige weitere Namespaces und die Klassen, die den gleichen Namen haben, werden in beiden Namespaces verwendet.
Ich war auf vielleicht mit Suffixen denken, die Klassen zu trennen und sie auf dem gleichen Namensraum, zum Beispiel setzen:
class Mesh
{
...
};
class MeshFactory
{
...
};
MeshFactory meshFactory;
Mesh *mesh = meshFactory.create(...);
So gibt es keine Verwirrung darüber, was jede Klasse zu tun.
Ich mag die einfache Lösung nicht die unterschiedlichen Namensräume zu verwenden ist und verschiedene Namen zu erfinden, weil ich den Namespace-Namen würde am Ende mit ihnen differenzieren:
class Mesh
{
...
};
namespace Factory
{
class MeshFactory // I can't figure a better different name
{
...
};
}
Ich ziehe die zweite Option.
Gibt es einen guten Grund, warum ist die erste Option besser? Oder gibt es einen anderen Weg? Was sagen Best Practices dazu?