Se ha hablado de que Enums viola, en general, los principios de Clean Code, por lo que estoy buscando los anti-patrones Enum favoritos y soluciones alternativas para estos.C#: Enum anti-patterns
Por ejemplo, yo he visto código como este:
switch(enumValue) {
case myEnum.Value1:
// ...
break;
case myEnum.Value2:
// ...
break;
}
Es un paso mejor que interruptores-declaraciones con cuerdas mágicas, pero esto probablemente podría haberse resuelto mejor con una fábrica, un contenedor u otro patrón .
O incluso la vieja escuela código como este:
if(enumValue == myEnum.Value1) {
// ...
} else if (enumValue == myEnum.Value2) {
// ...
}
¿Qué otros anti-patrones y mejores implementaciones has experimentado con enumeraciones?
Diccionario better than Enum ?? ¿puedes explicar porque? –
Usted mezcla todo por completo. 'switch' contra enum no está mal por sí mismo. a veces es necesario, por ejemplo, en la fábrica mencionada. – Andrey
Debe usar Dictionary con una clave de una enumeración. De esta forma, obtienes lo mejor de ambos mundos: diccionario fuertemente tipado Y no más declaraciones de cambio largas. – VitalyB