variable practices net guidelines framework estandares best c# naming-conventions namespaces

c# - practices - framework design guidelines



¿Cómo evitar tener el mismo nombre para una clase y su espacio de nombres, como Technology.Technology? (5)

Bien, ya sea que nombre sus espacios de nombres como ese ns MyNamespace o nombre su clase c MyClasse. Personalmente estoy a favor de nombrar el espacio de nombres, porque no es algo que utilices mucho en el código.

También puede usar TechnologyBase o AbstractTechnology para nombrar su clase abstracta principal que entra en conflicto con el nombre de su espacio de nombres, que es lo que recomiendo para mantener la convención de nomenclatura más lógica.

Frecuentemente tengo conflictos de nombres entre un espacio de nombres y una clase dentro de ese espacio de nombres y me gustaría conocer una mejor práctica para manejar esto cuando parece tener sentido usar estos nombres en primer lugar, además de agregar prefijos aleatorios.

Parecía tener sentido tener un espacio de nombres de Models.Technology, con docenas de clases de tecnología (es decir, armas, tecnología agrícola, reciclaje) y algunas interfaces relacionadas en él. También decidí tener una clase abstracta de Tecnología, en el espacio de nombres de Tecnología, del cual derivan todas las tecnologías.

Sin embargo, esto me obliga a usar un código como este:

public Technology.Technology research(Technology.Technology tech) {...}

y de la misma manera:

public Building.Building build(int count) {...}

Por cierto, no mencioné las tecnologías de mi espacio de nombre porque utilizo ese término en otro lugar como un contenedor para una lista de tecnologías disponibles ...


Sin indicaciones más precisas sobre cuándo se encuentra con este problema, es difícil darle algunos consejos generales.

Pero supongo que tienes este problema cuando tienes una clase base en tu espacio de nombres, con otras clases que heredan de ella. Si ese es el caso, podría llamar a su clase BaseTechnology (clase base) o AbstractBuilding (clase abstracta) o IAnimal (interfaz). Esto incluso le da más claridad ya que especifica en el nombre de su tipo algo importante al respecto.


Un colapso general es nombrar su espacio de nombres "Entidades" o algo así.


Qué pasa con Technology.Tech

o:

HumanBeing.Human

o:

CocaCola.Coke?

Lo que me gusta hacer es tener una regla simple. Donde uso las primeras dos letras de una palabra, seguidas de las dos últimas letras de esa palabra como:

Tecnología. Tegía

Puede no tener ningún sentido, pero debido a que siempre se aplica la misma regla, significa menos confusión, y no hay necesidad de recordar mucho, excepto por esa única regla. Esta es solo mi preferencia. A mí, me gusta que las cosas parezcan crípticas, así que si ese no es tu estilo, entonces tal vez esta respuesta no sea para ti.

Espero que esto ayude ... Al menos un poco ... :)


Otra solución, simplemente llame al espacio de nombres después del nombre de la empresa para la que está trabajando.