我来回答,我来回答
首先好处:
1,版本之间互不依赖。数据,配置信息,统计,等等都可以针对版本订制。往往新版发布以后,旧版本接口将不再运营,取而代之的都是更新提示等,这样就要求多版本的数据各不相同。
2,代码清晰。版本多了以后,难免出现各种判断,如果物理分离,就不需要了,各种清晰
3,我还没想到
然后代码冗余的问题:
首先,代码物理分离,但逻辑可以不分离。就是说,你要有一个BaseAPI基本满足需求,或者说可以满足1.0版本全部需求。
然后,版本API继承这个BaseAPI,最基本的版本API就是一堆继承自BaseAPI的空壳,只有当有个性化需求的时候,才去重写某些接口(方法)。
最重要的一点:版本之间一定是可继承的。也就是说,1.0继承自Base,2.0一般如果变化不大,就继承自1.0。
最后举一个较复杂的例子:
1.0继承自Base,Base是可以满足1.0全部需求的,1.0接口只是重写了版本检测等版本号以来的方法。
2.0发布,添加了一个只有2.0才支持的新功能,仅此而已。2.0接口也继承自Base,但新功能是卸载2.0里的。
2.0.1发布,修正了一些Bug。2.0.1的接口就继承自2.0接口。
3.0发布,对全部版本数据有一些较大的更新,另新增一个功能。把全部版本的更新写进Base,3.0接口继承自2.0.1,新增功能在3.0中实现