one_cup

Results 8 comments of one_cup

@JakeWoki 个人觉得 RxJava和LiveData并不冲突,说一下我的理解,在Model中使用Rxjava,然后在返回到ViewModel中的时候转化为LiveData。

`@FragmentScope public class WeatherNowViewModel extends BaseViewModel implements IRetry { private final LiveData mContents; private MutableLiveData locationName = new MutableLiveData(); private String mLocationName = ""; @Inject public WeatherNowViewModel(Application application, WeatherNowModel model)...

还有一个想要交流的地方就是,其实MVVM并不是一个完成的架构,它只是在UI或者说是在Android项目层面提供一个解决方法,主要的功能还是分离View 和 ViewModel,但是这两天我重构代码的时候发现,其实这么写之后大部分的代码还是会堆积到ViewModel中,是不是应该在ViewModel中再分离出一部分放到Model中,比如业务逻辑,ViewModel只是进行渲染UI和接受UI事件。

上面那个例子中使用RxJava的地方是在Model中,ViewModel中只有LiveData

说一下我的看法,首先LiveData仅仅就是一个LiveData,作用就是上面说的那些,是在Rx强大的操作符下,LivaData的只有两个操作符显得毫无作用,但是这就是LivaData,它不需要也没有必要去拥有别的更多的功能,它只要做好生命周期响应通知数据就可以了。然后说Rx,作为响应式的流操作它的强大无可厚非,但是我觉得它应该做的也是一个流操作,而不应该掺杂其他的东西,就是良好的线程控制和强大的数据操作,那为什么我要在数据的操作过程中去关心数据的生命周期?其实在我的理想架构中,LiveData和Rx是能够相处的十分融洽的,VM中使用LivaData,Model中使用Rx,把所有的业务逻辑,数据的获取,保存,处理都放在Model层,VM层只有两个功能根据数据去渲染UI,而是接受UI输入去获取数据。那LiveData在VM中能完美发挥,并且Rx也能在Model中展现出强大的实力。说RxLifecycle,只是对Android的妥协

我理解并尊重你的想法,没有一个完美的架构能够解决所有的问题,大家都是在为了同一个目标前进并努力着。我十分同意你的后半段 > 另外你对 Rxjava 的理解也是错的, Rxjava 代表的是 响应式, 函数式 等思想的实现, 切换线程和数据流的操作只是他附带的功能以及特点, 并不代表他的全部, 所以把他用在数据的处理还是 UI 逻辑的处理是没有任何关系和限制的, 用它并不代表我只是想处理数据流, 而是使用一个思想 想了一下,确实是我的想法有些片面,一个强大的工具可以在任意地方发挥它的作用。 但是我还是要那个完美的场景去尝试,努力,寻求一个个恰当的解决方案。

对,其实你后面说的是对的,赋予的是能力而不是具体的使用方式,我们可以用这种能力去做某些事情,但并不是仅仅的局限在这些事情上面,是我理解的不够

问一下 这个问题解决了吗?也遇到同样的问题