Це не анти-модель. Анти-шаблони мають певну властивість, завдяки чому це здається гарною ідеєю, що змушує людей робити це навмисно; вони плануються як зразки, і тоді це страшенно неправильно.
Це також є причиною дебатів щодо того, чи є щось шаблоном, антидіаграмою або загальноприйнятою неправильною схемою, яка все ще має місце в деяких місцях.
Це просто неправильно.
Щоб додати ще трохи.
Цей код забобонний, або в кращому випадку - культовий культ.
Забобони - це щось, зроблене без чіткого обґрунтування. Це може бути пов’язане з чимось реальним, але зв’язок не логічний.
Практика вантажно-культової практики - це те, коли ви намагаєтесь скопіювати щось, про що ви дізналися, з більш обізнаного джерела, але ви насправді копіюєте поверхневі артефакти, а не процес (так називали культ у Папуа-Новій Гвінеї, який би створив літаки керують радіостанціями з бамбука, сподіваючись повернути японські та американські літаки Другої світової війни).
В обох цих випадках реальної справи не може бути зроблено.
Антидіаграма - це спроба розумного вдосконалення, чи то в малому (це додаткове розгалуження для вирішення того додаткового випадку, який має бути вирішено, що призводить до коду спагетті), так і у великому, де ви дуже навмисно реалізуєте шаблон що або дискредитовано, або обговорюється (багато хто описує одиночні кнопки як такі, де деякі виключають лише для запису - наприклад, об'єкти реєстрації або лише для читання, наприклад, об'єкти налаштувань конфігурації - а деякі засуджують навіть ці) або інше, де ви вирішуєте неправильна проблема (коли вперше було виведено .NET, MS рекомендував схему вирішення питання щодо розпорядження, коли у вас були як некеровані поля, так і керовані одноразові поля - це дійсно дуже добре справляється з цією ситуацією, але справжня проблема полягає в тому, що у вас є обидва типи поля в одному класі).
Таким чином, антидіаграма - це те, що розумна людина, яка добре знає мову, проблемний домен та наявні бібліотеки, навмисно зробить, що все-таки має (або стверджується, що є) мінус, який перевершує перевертання.
Оскільки ніхто з нас не починає добре знати дану мову, проблемну область та наявні бібліотеки, і оскільки кожен може щось пропустити, переходячи від одного розумного рішення до іншого (наприклад, почати зберігати щось у полі для гарного використання, а потім спробуйте переробляйте його далеко, але не закінчіть роботу, і ви закінчите код, як у питанні), і оскільки ми час від часу всі пропускаємо речі в навчанні, ми всі створили якийсь забобонний або вантажний культовий код . Хороша річ - це те, що вони насправді чіткіше визначити та виправити, ніж анти-шаблони. Справжні анти-візерунки або, мабуть, не є анти-візерунками, або мають привабливу якість, або принаймні мають якийсь спосіб заманювати один у них навіть тоді, коли їх ідентифікують як погані (занадто багато і занадто мало шарів є і беззаперечно поганими, але уникаючи такого веде до іншого).