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论坛,就大量使用了工厂模式,工厂模式...