/**
* 状态模式
*/
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的约定轻...