Мне часто требуется глобальное жестко закодированное сопоставление между enum и другим объектом (строка в этом примере). Я хочу совместить определения перечисления и отображения для уточнения обслуживания.
Как вы можете видеть, в этом примере создается раздражающий класс с одним статическим полем.
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");
}
}
Иногда класс сопоставления может иметь больше функций и значимое имя, а активность отображения может быть даже частной. Но это только загрязняет проблему поддержания/корреляции.
У кого-нибудь есть хороший шаблон для этого?