MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Enum — это анти-паттерн? Почему?"
Answer 816189
Нет, это миф. Перечисление используется для представления определенной семантики - целочисленный тип с множеством именованных допустимых значений (хоть язык и позволяет присвоить перечислению любые значения, для этого требуется явное приведение, так что типобезопасность соблюдается). Класс с набором статических readonly-полей (или свойств) представляет другую семантику - тип, в котором некоторые значения имеют особый смысл, но другие значения тоже являются допустимыми.
См. например Colors - цвет может принимать любые значения из непрерывного диапазона RGBA-последовательностей, но для ряда часто используемых сделаны константы.
Другое дело, что иногда enum используют как замену нормальной иерархии классов: вместо наследования с переопределением абстрактных методов пихают enum-поле и один большой спагетти-метод со switch. Это действительно можно считать "антипаттерном", так как от этого страдает читаемость кода и удобство работы с ним в IDE.
Связанный вопрос: When are enums NOT a code smell?
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.