您的位置:首页 > 其它

Kotlin 设计模式-观察者

2017-12-11 15:31 211 查看

前言

观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。

摘自百度百科《观察者模式》

kotlin 中的观察者

Java官方对于观察者模式在java.util包中提供了Observer接口和Observable抽象类。比如说注册,删除,通知观察者的那些功能已经内置好了。kotlin也支持使用Java中提供的观察者模式支持。

Kotlin对观察者的优化支持是对于属性可以直接监听其值的变化,对变量值的变化使用代理的方式进行属性代理。

Show me code

interface TextChangedListener {
fun onTextChanged(newText: String)
}

class PrintingTextChangedListener : TextChangedListener {
override fun onTextChanged(newText: String) = println("Text is changed to: $newText")
}

class TextView {

val listener: TextChangedListener? = PrintingTextChangedListener()

var text: String by Delegates.observable("") { prop, old, new ->
listener?.onTextChanged(new)
}
}


调用代码

val textView = TextView()
textView.text = "Hello world!"
textView.text = "this is kotlin observable pattern!"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息