Реализации на 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"
}
}
Реализация абстрактных фабрик инструментов
interface AbstractFactory {
fun createHacksaw(): AbstractHacksaw
fun createHammer(): AbstractHammer
}
Main
fun main() {
val metalFactory = MetalFactory()
val metalHammer: MetalHammer = metalFactory.createHammer()
metalHammer.use()
val metalHacksaw: MetalHacksaw = metalFactory.createHacksaw()
metalHacksaw.use()
val woodFactory = WoodFactory()
val woodenHammer: WoodenHammer = woodFactory.createHammer()
woodenHammer.use()
val woodHacksaw: WoodHacksaw = woodFactory.createHacksaw()
woodHacksaw.use()
}
Last updated
Was this helpful?