mirror of
https://github.com/tursom/TursomServer.git
synced 2025-02-14 05:40:07 +08:00
.. | ||
src/main/kotlin/cn/tursom/core/delegation | ||
ts-observer | ||
build.gradle.kts | ||
README.md |
ts-delegation 是使用kotlin的 属性委托 语法实现的一个属性委托库。其使用
其核心接口为 DelegatedField
与 MutableDelegatedField
。这两个接口分别定义了实现属性委托的 getter 与 setter,具体方法分别如下表:
类 | 方法 |
---|---|
DelegatedField | operator fun getValue(thisRef: T, property: KProperty<*>): V |
MutableDelegatedField | operator fun setValue(thisRef: T, property: KProperty<*>, value: V) |
setValue
的默认实现会先调用 valueOnSet(thisRef, property, value, getValue())
后 调用 setValue(value)
,这是由这两个函数的功能决定的。fun setValue(value: V)
则负责值的具体设置实现,而函数 valueOnSet
负责监视设置属性事件的实现。将 valueOnSet
独立出的原因是一些功能需要独立的方法实现,比如负责异步执行的实现ExecutorMutableDelegatedField
就会将监听器的具体调用放到线程池里执行。