我已经做了3年的android开发人员,我一直想知道为什么要为应用程序架构创建单一实现的界面,比如:
interface SomethingRemote {
fun fetchSomething(): Single<SomethingEntity>
}
然后,实施:
class SomethingRemoteImpl(private val service: apiService): SomethingRemote {
override fun fetchSomething() {
// Does some logic with the service class to return the specified class defined in the interface
}
}
我一直在关注google的sunflower存储库,从阅读到在我的前两个项目中实现它,实现新功能或进行更改是sunflower的repo架构的一件轻而易举的事,但是,我还参与过一些其他项目,这些项目完成了interface<->interfaceimpl的工作,还向层添加了更多类:
实体
viewmodel(不要与googleviewmodel混淆,这只是从模型类Map的ui数据)
远程<->remoteimpl
数据源<->数据源IMPL
存储库<->repositoryimpl
所有这些文件和单个实现的接口使得添加新特性或更改简单的内容(例如从api请求中修改json属性值)变得非常混乱,我见过很多项目这样做,我不明白为什么要这样做,当使用sunflower中所示的体系结构时,这样做比较容易混淆,而且更“切中要害”,我想知道这样做的好处是什么。
我个人反对“impl”后缀。
暂无答案!
目前还没有任何答案,快来回答吧!