xyoye / MMKVStorage

MMKV扩展库,使用注解自动生成put和get方法
MIT License
6 stars 1 forks source link

是否可以考虑使用kotlin的拓展函数? #1

Open michaellee123 opened 2 years ago

michaellee123 commented 2 years ago

例如,一个类

class KV {
   var data = "aaa"
}

在加上注解之后,生成拓展函数

fun KV.getData():String(){
   return MMKV.getDefault()......
}
fun KV.setData(data:String){
   MMKV........
}
fun KV.save(){
   //保存整个KV obj
}

这样就可以直接调用了。

然后可以考虑给他做成一个泛型,把整个data做到一个类中,再给他加观察者模式一整套东西,当然,这只是建议。

xyoye commented 2 years ago

感谢你对项目提出建议,但是我不理解上面这些改动,能使项目哪些方面得到优化或者改进。能说说你是出于什么样的考虑而进行的这些改动吗?

michaellee123 commented 2 years ago

感谢你对项目提出建议,但是我不理解上面这些改动,能使项目哪些方面得到优化或者改进。能说说你是出于什么样的考虑而进行的这些改动吗?

不好意思,之前没看到这条回复。首先第一点是调用上面的,现有的调用,如你demo里面的:

TestKotlin_MMKV.putKotlinValue(123)

这个会变成:

TestKotlin.putKotlinValue(123)

然后置于我说的集成观察者模式的东西,整个应该还是比较复杂的,可以选择用第三方库做拓展,我预想中大概能达到的效果,比如说jetpack中的room不知道你用过没,它可以在设置数据的同时在其他地方可以监听。能够用到的地方,例如修改用户信息时,界面自动更新,从设置界面保存后退回展示页面就不用手动去再通知一次。