casa大神的网络设计方案的评论之集约型API和离散型API的理解?

问:
同一个服务,就登陆注册接口需要分别针对登陆、注册、获取用户信息等操作写不同的APImanager?这样会显得非常麻烦,架构上怎样改变能兼容账号系统一个APImanager支持多个接口(登陆、注册)

答:
我的倾向在于:

只要是不同目的的API调用,都会为它单独实现一份APIManager。

“不同目的”是指同一个API的不同目的的使用。比如获取房源的API,
这是一个API,但是这个API会带一个参数Type:二手房、新房、租房。
那么此时,我会根据获取目的,将这一个API拆成3个API。
要获取二手房房源、租房房源、新房房源就分别调用3个不同的API。而不是通过传递Type参数。

所以不同目的是针对单个API的不同目的,而不是一群API。
总的来说就是每个API对应一个APIMananger,
如果这个API设计得并不纯粹,那么就会再针对这个API的不同目的,
在Native中去实现多个APIManager。

一旦有多个API的调用放在同一个APIManager里,那么离散型API调用的好处就无法体现了

哪怕这些API是同一个系统下的,比如登录系统。

评论里我有给出我自己项目中的API列表,

同一模块的多个API最多就是放在同一个文件夹下,但是实现都是分开实现的

我需要再说明一下的是:离散型就是一个API对应单独的一个APIManager,只要一个APIManager承载了多个API的业务,那其实都是集约型,哪怕同一模块的放在一起也是集约型,只是集约的粒度更小了一些而已。这么做除了写代码的时候能偷懒少写几行以外,对于代码维护和迁移,都会带来非常大的不便。

你可能感兴趣的:(casa大神的网络设计方案的评论之集约型API和离散型API的理解?)