Информация об изменениях

Сообщение Re: Преимущество переноса условия из метода в фабрику от 11.04.2021 11:36

Изменено 11.04.2021 11:36 vsb

Re: Преимущество переноса условия из метода в фабрику
Я считаю, что он не прав. Нет ничего плохого в switch-ах по всей программе. Просто потому, что код со switch-ом будет именно в том месте, где он должен быть. А вот если собрать разнородный код со всей системы в один класс, вот это будет полная мусорка. И всё для того, чтобы не писать switch. В общем это очень напоминает старые дебаты по поводу "правильного ОО" против анемичной модели (я тут на стороне последнего варианта). Причём история показывает, что "правильное ОО" как-то со временем уже уходит, во некоторых новых языках его уже и нет в полноценном варианте.

Но, конечно, в языке должны быть enum-ы и должен быть switch, который будет ругаться при компиляции, если не все варианты перечислил. Т.е. если добавляешь новое значение, то не забудешь добавить новое поведение. Если сравнивать именно этот пример со строками, то тут может и есть смысл сделать с объектами, но это только от бедности языка. Как визитор делают не от того, что это крутой паттерн, а от того, что в языке нет двойной диспатчеризации.
Re: Преимущество переноса условия из метода в фабрику
Я считаю, что он не прав. Нет ничего плохого в switch-ах по всей программе. Просто потому, что код со switch-ом будет именно в том месте, где он должен быть. А вот если собрать разнородный код со всей системы в один класс, вот это будет полная мусорка. И всё для того, чтобы не писать switch. В общем это очень напоминает старые дебаты по поводу "правильного ОО" против анемичной модели (я тут на стороне последнего варианта). Причём история показывает, что "правильное ОО" как-то со временем уже уходит, во некоторых новых языках его уже и нет в полноценном варианте.

Но, конечно, в языке должны быть enum-ы и должен быть switch, который будет ругаться при компиляции, если не все варианты перечислил. Т.е. если добавляешь новое значение, то не забудешь добавить новое поведение. Если сравнивать именно этот пример со строками, то тут может и есть смысл сделать с объектами, но это только от бедности языка.