目前,服务器端返回的数据,时常会包含null的情况。客户端为做兼容,使得data class中的属性都定义为可空类型(?)。这样会产生一个影响,在业务逻辑实现中,频繁要编写判断空的操作。具体是频繁使用问好(?),let多层嵌套。避免了空指针异常的同时,也增加了业务逻辑层的可读性和编写难度。
于是,思考在服务器返回数据和业务逻辑层中间,增加一层兼容处理。有若干选项:1,使用java语言编写数据模型类,这样在兼容这一层通过反射机制统一判断,另外因为java的数据模型类在kotlin中被定义为平台类型,对于可空的也可以不使用问好(?)操作。2,使用kotlin编写data class,每个属性基本定位为可空类型。3,使用kotlin编写data class类,属性依然定位仪不可空类型,在兼容层使用kotlin和java的反射机制,对不可空类型但是value是空的情况,发出error信号走error分支;
最终目的,让业务逻辑层专心编写业务逻辑,而因为服务器不可控性导致的时常null情况,统一放在兼容层处理。大概是 “retrofit -> 兼容处理 -> 业务逻辑”
抛砖引玉。