网络请求该写在哪里? #109
liangjingkanji
announced in
Announcements
网络请求该写在哪里?
#109
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
本章只是作者个人建议仅供交流, 具体视自己而定, 有任何不同意见欢迎在社区讨论
网络请求的组成
Net基于协程设计, 估他的请求分为两部分
简单的请求
作用域/请求我认为都可以写在Activity/Fragment中, 因为本身他们逻辑就很简单(仅一行代码就能请求返回数据), 而且作用域一般会要求跟随Activity的生命周期
你不想业务逻辑和UI耦合应当是将业务逻辑写到Model中, 但是请求本身我认为没有必要, 代码不要过分苛求"模板化"
复杂的请求
对于过于复杂的网络请求逻辑或者你就是希望在Model或者ViewModel中发起请求, ViewModel里面使用
scopeNetLife
也是可以的(同样会跟随ViewModel生命周期)但是我更推荐的还是将
请求动作
写在ViewModel, 作用域依然在Activity/Fragment中, 因为某些作用域要求Activity等引用(比如scopeDialog对话框作用域)错误做法
不要写出某些拆分然后组装然后再拆分的代码, 脱裤子放屁一样反复横跳
LiveData
对象, 然后再监听LiveData, 然后再将组装的对象再拆分成成功/失败不要将协程再次封装成任何接口回调形式
的异步代码总结
不要追求复杂的绕来绕去的模板, 也不要说一些晦涩难懂的
黑话
, 我们追求视图和逻辑解耦大多为了版本迭代中复用逻辑, 透过需求看到本质Beta Was this translation helpful? Give feedback.
All reactions