簡體   English   中英

Android ViewModel 中的 Kotlin 支持屬性

[英]Kotlin backing property in Android ViewModel

只是想知道,為什么最好為 MutableLiveData 使用支持屬性,而不是僅僅公開將 MutableLiveData 屬性作為實時數據返回的 getter function。 例如:為什么這個代碼

private val _registeredDevicesObservable: MediatorLiveData<List<Data>> = MediatorLiveData()
val registeredDevicesObservable: LiveData<List<Data>> = _registeredDevicesObservable

比這個更好或更容易接受

private val _registeredDevicesObservable: MediatorLiveData<List<Data>> = MediatorLiveData()
fun registeredDevicesObservable(): LiveData<List<Data>> = _registeredDevicesObservable

同樣,當這個 getter function 保持 LiveData 不變性並防止我在訪問視圖 model 內的屬性時使用那種令人討厭的下划線語法時。

在語言中使用 function 只是不那么慣用,它只返回一個已經可用的 object。 您可以按照自己喜歡的方式自由地進行操作,但是如果其他人必須使用您的代碼,那么如果您遵循一般約定,將會更容易理解和使用。

關於支持屬性是否應在名稱中包含前導下划線並沒有那么嚴格的約定,因此如果您不喜歡它,請不要使用它。

堅持這些約定的一個原因是,有一個提議的即將推出的語言功能允許您在沒有支持屬性的情況下執行此操作,因此如果您遵循這些約定,更新代碼以消除支持屬性將非常容易.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM