Sobes.tech
Junior — Middle

Jaki typ szablonu Builder stosuje się, gdy wynik jego wykonania nie ma znaczenia?

sobes.tech AI

Odpowiedź od AI

Gdy wynik budowania obiektu nie jest istotny, stosuje się wzorzec Builder z metodą Fluent Interface, gdzie metody zwracają samego buildera, umożliwiając wywoływanie łańcuchów metod do konfiguracji, ale końcowy obiekt może nie być używany lub być niepotrzebny. Takie podejście często stosuje się do konfiguracji lub ustawień, gdzie ważny jest sam proces ustawiania parametrów, a nie tworzenie końcowego obiektu.

Przykład w Kotlin dla 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() {
        // Tu nie ma zwrotu obiektu, po prostu konfigurujemy logger
        println("Logger skonfigurowany z poziomem=$level i tagiem=$tag")
    }
}

// Użycie:
LoggerBuilder()
    .setLevel("DEBUG")
    .setTag("MyApp")
    .build()  // Wynik nie jest ważny, ważny jest proces konfiguracji