abstract class Operation{
var firstNumber:Float = 0f
var lastNumber:Float = 0f
abstract fun getResult():Float
}
class OperationAdd : Operation(){
override fun getResult(): Float = firstNumber + lastNumber
}
class OperationSub : Operation(){
override fun getResult(): Float = firstNumber - lastNumber
}
class OperationFactory{
companion object{
fun createOperation(operate:String):Operation?{
when(operate){
"+" -> return OperationAdd()
"-" -> return OperationSub()
else-> return null
}
}
}
}
fun main(args:Array<String>){
var operation = OperationFactory.createOperation("+")
operation?.firstNumber = 10f
operation?.lastNumber = 10f
var result:Float = operation?.getResult()!!
println("result is: $result")
}
工厂模式(Factory)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- Simple Factory Pattern(简单工厂模式) GoF中认为简单工厂模式是工厂方法的一个特例。 结构...
- Factory Method(工厂模式):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory ...
- 姓名: 李小娜 [嵌牛导读] : 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式...