/**
* 状态模式
*/
interface State {
fun shopping()
fun move()
}
class Loving : State {
override fun move() {
println("一起看电影")
}
override fun shopping() {
println("一起看逛街")
}
}
class NoLove : State {
override fun move() {
println("不看电影")
}
override fun shopping() {
println("一个人逛街")
}
}
class Context2 {
private var mState: State? =null
private fun setState(state: State) {
mState = state
}
fun inLove() {
setState(Loving())
}
fun outLove() {
setState(NoLove())
}
fun move() {
mState!!.move()
}
fun shopping() {
mState!!.shopping()
}
}
fun main(args: Array) {
val context = Context2()
context.inLove()
context.move()
context.shopping()
context.outLove()
context.move()
context.shopping()
}
kotlin状态模式
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 解释器模式 在我们给定一个语言,并定义它的语法和一个解释器,这个解释器用来标识语言中的句子,就是所谓的解释器...
- 前言 状态设计模式系列文章状态设计模式(一) - 定义状态设计模式(二) - 订单状态一般方法实现状态设计模式(三...
- java的单例模式几种写法都已经很熟悉了,但转到kt时如果用java写法实现倒显得怪异了,有的可以借助kt的约定轻...