Константите трябва да са заедно, за да ги намирате лесно
TL;DR: Не дефинирайте твърде много несвързани константи в един и същ клас. Не трупайте боклуците заедно.
проблеми
- Лоша кохезия
- Високо свързване
- Магически числа
- Нарушение на принципа на единната отговорност
Решения
- Разбийте съдържанието след отговорностите в реалния свят с помощта на MAPPER.
Контекст
Това е специален случай на Божествен обект, ограничен само до постоянни дефиниции.
Хранилището може да бъде клас, файл или JSON.
Примерен код
погрешно
public static class GlobalConstants { public const int MaxPlayers = 10; public const string DefaultLanguage = "en-US"; public const double Pi = 3.14159; }
вярно
public static class MaxPlayersConstants { public const int MaxPlayers = 10; } public static class DefaultLanguageConstants { public const string DefaultLanguage = "en-US"; } public static class MathConstants { public const double Pi = 3.14159; }
Откриване
[X] Полуавтоматичен
Можем да кажем на нашите линтери да ни предупреждават за твърде много дефиниции на константи спрямо предварително зададен праг.
Тагове
- Съединител
Заключение
Намирането на правилните отговорности е една от основните ни задачи при проектирането на софтуер.
Връзки
Повече информация
„среден“
Опровержение
Code Smells е моето мнение.
Кредити
Снимка от Aaron Burden на Unsplash
Ако някой каже, че кодът му е бил повреден за няколко дни, докато преработва, можете да бъдете почти сигурни, че не е преработвал.
Мартин Фаулър
Тази статия е част от поредицата CodeSmell.