实习入职第二周了,从第一周的了解学习公司所用的技术到这周开始的入手相对简单的项目,
接触到了很多曾经听说过却一直没用过的技术,
如Kotlin,MVVM设计模式以及RecycleView装载多种不同类型View的方法
一开始公司的前辈就说项目里用到的技术都比较新,当我看到项目里的Kotin代码的时候,老实说,心里有点慌,于是赶紧尝试入门Kotlin基础语法。老实说,Kotlin的代码确实比Java代码看上去简洁,但是对于不熟悉的人来说(对的就是我),有些地方简洁过头让我理解不能(灰溜溜地打开百度,搜索Kotlin里的let,apply,with,run)。接触一段时间感觉还行,但是没有参考自己写的话会感觉很费神。。。
之前是用过MVC模式写APP的,对设计模式稍微了解一点,
Model:数据结构
View:仅用于和用户进行UI交互
Presenter:提供接口,用于进行逻辑处理
优点:用接口进行逻辑处理,代码重用,相对于MVC模式更“解耦”
(我才知道原来ViewModel是Jetpack的ViewModel)
此处使用LiveData + ViewModel + Repository实现MVVM模式
Model:即为LiveData
View:仅用于和用户进行UI交互
LiveData:数据持有类(可被订阅者监听?观察!此处应该基于观察者模式吧,猜测)。并且只在激活状态(STARTED、RESUMED)才会通知观察者有数据更新
ViewModel:提供View需要的接口,执行数据转换的逻辑
Repository:处理从各处得到的数据并返回给ViewModel
以前只是知道RecycleView功能比ListView更为强大(可以横着排列,竖着排列,一排放多个view)
直到看到项目里面装载了不同类型的界面的layout里面只有一个RecycleView!还有这种操作?(内心黑人问号)
绝了
经过对项目作者,也就是公司的前辈的请教,我稍微了解了这种操作的基本思路
学到了学到了
原文:https://www.cnblogs.com/clearmoon/p/12584925.html