【发布时间】:2018-06-12 09:39:55
【问题描述】:
我想重用代码并包装 getter 和 setter,因为它们具有相同的功能。
我猜应该为每种类型制作一个通用函数。
我认为维护特定属性而不是使所有通用属性更好,因为代码可以更清晰地访问这些属性。例如:MyPrefs.instance.prefOne
具有 2 个“相同”功能的 SharedPreferences 类:
import android.content.Context
import android.content.SharedPreferences
class MyPrefs private constructor() {
companion object {
private const val PREF_ONE = "prefOne"
private const val PREF_TWO = "prefTwo"
val instance = MyPrefs()
}
private lateinit var prefs: SharedPreferences
fun init(context: Context) {
this.prefs = context.getSharedPreferences(context.applicationContext.packageName
+ "." + MyPrefs::class.java.simpleName, Context.MODE_PRIVATE)
}
fun clear() {
prefs.edit().clear().apply()
}
var prefOne: String
get() = prefs.getString(PREF_ONE, "")
set(prefOne) = prefs.edit().putString(PREF_ONE, prefOne).apply()
var prefTwo: String
get() = prefs.getString(PREF_TWO, "")
set(prefTwo) = prefs.edit().putString(PREF_TWO, prefTwo).apply()
}
【问题讨论】:
标签: android kotlin sharedpreferences