Це дуже зрозуміло, якщо ви читаєте в самому першому реченні питання, що це питання не стосується відповідних застосувань, як
усунення магічних чисел , а про жахливу безглузду нерозумну
послідовність у кращому випадку. Що стосується цієї відповіді
Здоровий глузд говорить вам про те, що const char UPPER_CASE_A = 'A';або const char A = 'A'не додає нічого, крім обслуговування та складності вашій системі. const char STATUS_CODE.ARRIVED = 'A'інший випадок.
Константи повинні представляти речі, незмінні під час виконання, але, можливо, їх потрібно буде в майбутньому змінити під час компіляції. Коли const char A =правильно рівне нічого, крім A?
Якщо ви бачите public static final char COLON = ':'код Java, знайдіть того, хто написав це, і зламайте їхні клавіатури. Якщо представництво на вас COLONколись зміниться, у :вас виникне кошмар на підтримку.
Опуднення:
Що станеться, коли хтось змінить його, COLON = '-'тому що там, де вони його використовують, потрібно -натомість скрізь? Чи збираєтесь ви писати одиничні тести, які в основному кажуть assertThat(':' == COLON)для кожної constпосилання, щоб переконатися, що вони не змінюються? Тільки, щоб хтось виправив тест, коли вони їх змінили?
Якщо хтось насправді стверджує, що public static final String EMPTY_STRING = "";це корисно і корисно, ви просто кваліфікували їх знання та сміливо ігноруєте їх у всьому іншому.
Наявність у кожного символу для друку з іменованою версією просто демонструє, що хто б це не робив, не підлягає написанню коду без нагляду.
Згуртованість:
Це також штучно знижує згуртованість, оскільки відсуває речі від речей, які ними користуються, і пов'язані з ними.
У комп'ютерному програмуванні згуртованість означає ступінь, до якого елементи модуля належать разом. Таким чином, згуртованість вимірює міцність взаємозв'язку між частинами функціональності в заданому модулі. Наприклад, у високо згуртованих системах функціональність сильно пов'язана.
З'єднання:
Він також поєднує безліч непов'язаних класів разом, оскільки всі вони в кінцевому підсумку посилаються на файли, які насправді не пов'язані з тим, що вони роблять.
Щільне з'єднання - це коли заняття групи сильно залежать один від одного. Цей сценарій виникає тоді, коли клас бере на себе занадто багато обов'язків або коли одна турбота поширюється на багато класів, а не на власний клас.
Якби ви використовували краще ім’я, як у DELIMITER = ','вас, все-таки виникли б ті самі проблеми, тому що ім'я є загальним і не має семантичного значення. Переназначення значення більше не допомагає зробити аналіз впливу, ніж пошук та заміна буквального ','. Тому що, який код використовується, він потребує, ,а якийсь інший код використовує, але потребує ;зараз? Ще потрібно дивитися на кожне використання вручну та змінювати їх.
В дикій природі:
Нещодавно я відновив 1,000,000+ LOCпрограму, якій було 18 років. Були такі речі public static final COMMA = SPACE + "," + SPACE;. Це жодним чином не краще, ніж просто викласти " , "там, де це потрібно.
Якщо ви хочете сперечатися з читальністю, вам потрібно навчитися налаштовувати свій IDE так, щоб відображати whitespaceсимволи там, де їх можна побачити чи що завгодно, це лише надзвичайно ледача причина введення ентропії в систему.
Він також ,визначав кілька разів з декількома неправильними написаннями слова COMMAв декількох пакунках і класах. З посиланнями на всі варіанти, змішані разом у коді. Нічого кошмару не було, ніж спробувати щось виправити, не порушуючи щось абсолютно не пов’язане між собою.
Те ж саме з алфавітом, було кілька UPPER_CASE_A, A, UPPER_A, A_UPPERщо більшу частину часу були рівні , A але в деяких випадках не було . Майже для кожного персонажа, але не для всіх персонажів.
І з історії редагування не з’ясувалося, що жодна з них коли-небудь редагувалася або змінювалася протягом 18 років, тому що зараз має бути очевидною причиною: це зламає занадто багато речей, які не можна відстежувати, таким чином у вас є нова змінна назви, що вказують на те саме, що ніколи не можна змінити з тієї ж причини.
У жодній розумній реальності не можна стверджувати, що ця практика не робить нічого, а починається з максимальної ентропії.
Я відремонтував увесь цей безлад і накреслив усі тавтології, і нові найми в коледжі були набагато продуктивнішими, оскільки їм не довелося шукати через багато рівнів непрямості, на що constнасправді вказували ці посилання, тому що вони не були надійними в тому, що їх назвали проти того, що вони містили.