Осенило
Любимое разработчиками слово "костыль" означает ровно необходимость применения оператора if. "Избавление от костылей" - если не упрощение функционала, то добавление уровня абстракции, избавляющего от использования if через, например, виртуальные функции.
no subject
Костыль - это не совсем if. Костыль - это причина потери времени разработчика на одновременно неинтересную и ненужную работу.
Костыли есть двух видов: внутренние внутри сервиса/программы (это не особо страшно, можно взять и поправить когда надо), и в интерфейсах/внешнем поведении. Вторые - страшное зло, так как их нельзя взять и поправить, тут же прибегут пользователи у которых что-то сломалось.
(no subject)
no subject
no subject
Использование виртуальных функций вовсе не избавляет от "if", оно просто уменьшает их количество/дублирование. Потому как один раз тип объекта всё-равно придётся назначить "вручную", пусть даже и упрятав этот выбор где-нибудь в xml-клоаке. :)
(no subject)
(no subject)
(no subject)
no subject
Там есть класс bool с методами ifTrue и ifFalse, которые вычисляют значение своего параметра. И наследники этого класса с инстансами true и false с соответствующей реализацией этих методов :)))
(no subject)
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
А вообще, конечно, надо конкретный случай разбирать. Может, там if-ов уже столько, что без нового уровня абстракции совсем плохо. С другой стороны, если горит и уже вчера надо, то красоту на потом.