求教。我们app的后端逻辑版本区分主要有两个维度:url、app版本(互联网产品,基本从不强制升级)。
1、url:xxx/v1 xxx/v2
2、app版本:iphone1.1 android1.2 ipad1.3
3、controller层采用SpringMVC
原始情况:在controller层各种版本if else,其实业务逻辑反而清晰,但是代码不友好,长期下来controller层代码很冗长。
尝试方案:在新controller v1版本时,定义基准抽象类和接口,后续版本更新继承原有controller。问题是controller文件略多,而且因为版本区分存在两个维度,导致虽然代码比较简洁,但可读性一般。
请求如果良好的设计版本兼容的代码,保证可读性和可维护性,想看一下大家的建议和方案,谢谢。