一、工厂类
package com.study.factorymethod
abstract class Factory {
abstract fun productPhone():IPhone
}
package com.study.factorymethod
class HuaWeiPhoneFactory:Factory() {
override fun productPhone() =HuaWeiPhoneImpl()
}
package com.study.factorymethod
class VivoPhoneFactory:Factory() {
override fun productPhone() =VivoPhoneImpl()
}
二、产品类
package com.study.factorymethod
interface IPhone {
fun call()
fun sendMsg()
fun playGame()
}
package com.study.factorymethod
class HuaWeiPhoneImpl : IPhone {
override fun call() {
println("华为手机打电话...")
}
override fun sendMsg() {
println("华为手机发短信...")
}
override fun playGame() {
println("华为手机玩游戏...")
}
}
package com.study.factorymethod
class VivoPhoneImpl : IPhone {
override fun call() {
println("Vivo手机打电话...")
}
override fun sendMsg() {
println("Vivo手机发短信...")
}
override fun playGame() {
println("Vivo手机玩游戏...")
}
}
三、主程序调用
package com.study.factorymethod
fun main() {
val huaWeiPhoneFactory=HuaWeiPhoneFactory()
val huaWeiPhoneImpl = huaWeiPhoneFactory.productPhone()
huaWeiPhoneImpl.call()
val vivoPhoneFactory = VivoPhoneFactory()
val vivoPhoneImpl = vivoPhoneFactory.productPhone()
vivoPhoneImpl.call()
}
四、运行结果