Реализации на Kotlin
Abstract factory
Общая реализация на языке Kotlin
Определение общего интерфейса инструментов
interface ITool {
fun use()
}Непосредственная реализация конкретных видов инструментов
abstract class AbstractHacksaw(
private val type: String,
private val name: String = SAW_NAME
) : ITool {
override fun use() {
println("Instrument: $name can be used for $type")
}
companion object {
protected const val SAW_NAME: String = "Saw"
}
}class MetalHacksaw : AbstractHacksaw(SAW_TYPE) {
companion object {
private const val SAW_TYPE = "Metal"
}
}class WoodHacksaw : AbstractHacksaw(SAW_TYPE) {
companion object {
private const val SAW_TYPE = "Wood"
}
}Реализация абстрактных фабрик инструментов
Main
Last updated