Константите трябва да са заедно, за да ги намирате лесно

TL;DR: Не дефинирайте твърде много несвързани константи в един и същ клас. Не трупайте боклуците заедно.

проблеми

  • Лоша кохезия
  • Високо свързване
  • Магически числа
  • Нарушение на принципа на единната отговорност

Решения

  1. Разбийте съдържанието след отговорностите в реалния свят с помощта на 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.