Zachowaj odwzorowanie enum-to-object z klasą enum?
Często potrzebuję globalnego, na stałe zakodowanego odwzorowania między wyliczeniem a innym obiektem (w tym przykładzie ciągiem znaków). Chcę zlokalizować enum i definicje mapowania, aby wyjaśnić konserwację.
Jak widać, w tym przykładzie tworzona jest irytująca klasa z jednym polem statycznym.
<code>public enum EmailTemplates { // Remember to edit the corresponding mapping singleton! WelcomeEmail, ConfirmEmail } public class KnownTemplates { public static Dictionary<EmailTemplates, string> KnownTemplates; static KnownTemplates() { KnownTemplates.Add(EmailTemplates.WelcomeEmail, "File1.htm"); KnownTemplates.Add(EmailTemplates.ConfirmEmail, "File2.htm"); } } </code>
Czasami klasa mapowania może mieć więcej funkcji i znaczącą nazwę, a działanie mapowania może być nawet prywatne. Ale to tylko zanieczyszcza problem konserwacji / korelacji.
Czy ktoś ma dobry wzór?