Паттерн строитель. А нужен ли он в котлине?

Паттерн строитель. А нужен ли он в котлине?

Пробую реализовать основные паттерны проектирования на котлине, и вижу что стандартные средства языка позволяют сделать то же самое значительно проще. Как пример паттерн строитель. Сделала его реализацию и сделала аналогичный котлин-класс с конструктором. Читается и то и то одинаково, в случае с котлином код даже короче. Функционал тот же. Java подобного сделать не позволяет, а тут можно даже поменять местами параметры конструктора или вовсе их пропустить... в общем - очень удобно) Возьму себе на заметку

@RestController class MyController ( ){ @GetMapping("builderStyle") fun builderStyle( @RequestParam name: String, @RequestParam score: Int, @RequestParam email: String, ) = Person.Builder() .name(name) .score(score) .email(email) .build() @GetMapping("kotlinStyle") fun kotlinStyle( @RequestParam name: String, @RequestParam score: Int, @RequestParam email: String, ) = KotlinStylePerson( name = name, score = score, email = email ) } class Person { var name: String? = null var score: Int? = null var email: String? = null class Builder { private val person = Person() fun name(name: String) : Builder { person.name = name return this } fun score(score: Int) : Builder { person.score = score return this } fun email(email: String) : Builder { person.email = email return this } fun build() = person } } class KotlinStylePerson ( var name: String? = null, var score: Int? = null, var email: String? = null, )
1
Начать дискуссию