一、策略类
package com.study.strategy
interface IStrategy {
fun operate(str: String)
}
package com.study.strategy
class FirstStrategy : IStrategy {
override fun operate(str: String) {
println("第一个操作策略是:$str")
}
}
package com.study.strategy
class SecondStrategy:IStrategy{
override fun operate(str: String) {
println("第二个操作策略是:$str")
}
}
package com.study.strategy
class ThirdStrategy : IStrategy {
override fun operate(str: String) {
println("第三个操作策略是:$str")
}
}
二、策略容器
package com.study.strategy
class Context(strategy: IStrategy) {
var strategy = strategy
fun operate(string: String) {
strategy.operate("context的环境::$string")
}
}
三、主程序调用
package com.study.strategy
fun main(args: Array<String>) {
var firstStrategy = FirstStrategy()
var context1 = Context(firstStrategy)
context1.operate("第一种策略")
var secondStrategy = SecondStrategy()
var context2 = Context(secondStrategy)
context2.operate("第二种策略")
var thirdStrategy = ThirdStrategy()
var context3 = Context(thirdStrategy)
context3.operate("第三种策略")
}
四、运行结果