Какво представляват Underbuilders в Java?
Underbuilder е клас, който предоставя изпълнение по подразбиране на builder за определен тип. С други думи, това е конструктор, който изгражда екземпляри от специфичен тип.
Например, да кажем, че имате клас, наречен `Car` и искате да предоставите конструктор за него. Можете да дефинирате underbuilder по следния начин:
```
class CarBuilder : Builder
// Дефинирайте стойностите по подразбиране за свойствата на Car
private var color: String = "red"
private var make: String = "toyota "
private var model: String = "corolla"
private var year: Int = 2015
// Дефиниране на методите на компилатора, които могат да бъдат извикани за задаване на свойствата
fun withColor(color: String): CarBuilder {
this.color = color
return this
}
fun withMake(make: String): CarBuilder {
this.make = make
return this
}
fun withModel(model: String): CarBuilder {
this.model = model
return this
}
fun withYear(year: Int) : CarBuilder {
this.year = year
return this
}
// Дефиниране на метода за изграждане на екземпляра Car
override fun build(): Car {
return Car(color, mark, model, year)
}
}
`` `
В този пример класът `CarBuilder` е подстроител за класа `Car`. Той осигурява изпълнение по подразбиране на конструктора, който може да се използва за създаване на екземпляри на „Car“. Методите `withColor`, `withMake`, `withModel` и `withYear` ви позволяват да зададете свойствата на екземпляра `Car`, а методът `build` се използва за действително създаване на екземпляра `Car`.
Underbuilders са полезно, когато искате да предоставите изпълнение по подразбиране на създател за конкретен тип, но също така искате да позволите на други създатели да разширят или модифицират това изпълнение. Например, може да имате базов конструктор, който предоставя изпълнение по подразбиране на свойствата, а след това други компилатори могат да разширят този базов конструктор, за да добавят допълнителни свойства или да променят съществуващите.



