можно, но зачем.
Почему так не сделают ООПшники?
в smaltalk if был функцией вроде.
если у тебя if для вариантов, то лучше не надо.
технически там and и прочие ifTrue были сообщениями
я не помню у кого но видел доклад где чел пытался SOLID через математику обосновать. Упорото немного но в целом поведенческие паттерны они как раз про змену ифов )
Да, если бы ифы развивали, они бы не хуже ООП были по сложности
ООП это механизм. Ифы тоже. Зачем им заменять и конкурировать друг с другом? Сделали бы что то новое.
смолток, эрланг - добро пожаловать
тут на самом деле такой момент. ифы, циклы и другие управляющие структуры - это то что называется структурным программированием. Напомню что до них надо было делать джампы к инструкциям. Это не просто "механизм". Это то что появилось в начале 60-х. Читать про всякие goto considered harmful. ну то есть оригинальную публикацию Дэйкстры. У if-ов нет особо проблем, ты можешь мысленно заменить их на функции. Потому что по факту оно эквивалентно. Ифы не особо увеличивают сложность. Если взять какой-нибудь groovy то вообще ifReplacement (predicat) { println "true" } { println "false" } // тоже что и ifReplacement(predicat, whenTrue, whenFalse) то есть чисто вопрос синтаксиса и восприятия. "сложность" и то с чем можно спорить это стэйт. То есть оператор присваивания это то что резко повышает сложность систем ибо вводит понятие времени. Нам теперь не все равно что было до или будет после. То есть скажем циклы, не просто так же говорят что проверку границы цикла пролюбливают чуть ли не в половине случаев, благо теперь есть итераторы и прочие forEach которые уменьшают такие риски. Что до ООП - тут вопрос как на это смотреть. Если смотреть с позиции simula то это лишь скоупы в контексте стукрутного программирования. Ничего принципиально нового даже на момент 68-ого года, просто удобно сделано. А если брать всякие смолтоки то там идея была в другом - у тебя есть объекты, у объектов есть внутренний стэйт и они могут посылать и принимать сообщения (как компьютеры в сети). Эта идея не конфликтует с идеями ФП или структурного программирования, она их дополняет. По факту "ООП" умерло примерно тамв 70-х и в целом хер с ним. Вместо него можно спокойно оперировать понятием экторов а экторы уже про модель распределенных вычислений.
Обсуждают сегодня