你好,我想请教个问题,我在设计网络层的时候用到以下如图那种模式,请问有什么弊端?谢谢。思路就是在model里面实现请求数据封装数据,具体类调用时候通过block返回装载model的数组。
回答:
- 没有针对API的request做封装。
一个API请求的组成不是只有URL的,还包括请求的header,header中有很多元素需要应用提供,例如公共参数,请求token等。
- 没有拆分请求
我提倡的是离散型API请求,这个在文中已经论述过了。如果你不拆成离散型API请求,你就很难针对每一个请求的中途事件做切点。举个例子:如果你的应用调用一个需要登录用户才能调用的API,而此时你的用户token失效,你怎么处理?
- 你采用了对象化的方式去交付数据。
这就导致你的业务层必须要声明你的Model,使得你的业务层组件如果要迁移或者复用,就必须带着你的网络层一起复用。
- 集约型和离散型请求
你在面向业务服务时,提供的还是集约型请求,这个我在文章中已经论述过了。
- block回调
由于你是集约型请求,所以你不得不采用block作为回调。然而这事实上是没有必要的,文章中已经论述得很清楚了。
你这种模式的弊端其实我在文章里面都已经详细列举了,你如果仔细阅读文章的话,你不应该问我这个问题。至少应该问:为什么是这样做而不是那样做?我觉得你对比文章就可以列举出弊端来。希望你下回问点有质量的问题。