Sobes.tech
Junior — Middle

Какъв тип шаблон Builder се използва, когато резултатът от изпълнението му не е важен?

sobes.tech AI

Отговор от AI

Когато резултатът от изграждането на обект не е важен, се прилага шаблонът Builder с метод Fluent Interface, където методите връщат самия строител, позволявайки верижно извикване на методи за настройка, но крайният обект може да не се използва или да не е необходим. Този подход често се използва за конфигурация или настройка, където важен е самият процес на задаване на параметри, а не създаването на крайния обект.

Пример на Kotlin за Android:

class LoggerBuilder {
    private var level: String = "INFO"
    private var tag: String = "App"

    fun setLevel(level: String) = apply { this.level = level }
    fun setTag(tag: String) = apply { this.tag = tag }

    fun build() {
        // Тук няма връщане на обект, просто конфигурираме логгера
        println("Logger конфигуриран с ниво=$level и таг=$tag")
    }
}

// Използване:
LoggerBuilder()
    .setLevel("DEBUG")
    .setTag("MyApp")
    .build()  // Резултатът не е важен, важен е процесът на настройка