在Kotlin多继承架构中,可以使用委托模式实现Builder模式。例如:
interface Builder
open class Person(val name: String, val age: Int)
class Employee(name: String, age: Int, val company: String) : Person(name, age) {
class Builder : Builder
fun name(name: String) = apply { this.name = name }
fun age(age: Int) = apply { this.age = age }
fun company(company: String) = apply { this.company = company }
override fun build() = Employee(name, age, company)
}
}
fun main() { val employee = Employee.Builder() .name("John") .age(30) .company("ACME") .build()
println("Employee: ${employee.name} (${employee.age}), works at ${employee.company}")
}
在这个例子中,我们定义了Builder
接口,并将其实现用于构建Employee
对象。每个属性都有一个对应的builder方法,可以链式调用。最后,我们调用build
方法以获取最终的对象。