почему бы вместо builder'а не написать DSL для соз...
# russian
a
почему бы вместо builder'а не написать DSL для создания объекта?
m
не понял. Как это?
a
см пример на оф.сайте: http://kotlinlang.org/docs/reference/type-safe-builders.html
m
И что, для каждого нужного мне класса Вьі предлагаете писать dsl?
Тогда это же будет куча кода.
y
Но ведь билдеры нужны, для случаев когда есть много разных полей и разных их комбинаций, которые надо заполнить для создания объекта, и если таких сложных объектов много, вероятно, надо еще раз подумать о дизайне своей системы
a
тогда вопрос в том, зачем нужен будет этот builder. как правило, в java он нужен для того, чтобы удобно было заполнять поля по их именам и код сделать более читаемым. в kotlin можно использовать именованные аргументы при создании дата-класса. в 90% случаев этого хватает. если нужно создавать какой-то сложный объект, то тут прямая дорого в написание DSL для этого конкретного случая, а это не такая частая задача. ИМХО: лепить билдер для каждого дата-класса - это будет уже перебор.
m
Я и не говорю что нужно лепить билдер для каждого класа. Я предлагаю дать возможность програмисту-пользователю язьіка Kotlin создавать builder клас для конструиирования обьекта того класа которьій он считает нужньім так конструировать.
и если таких сложных объектов много
да даже если таких сложньіх класов не больше трех все равно писать для них dsl это перебор