我正在尝试使用Android Clean Arch分隔每一层。我遵循https://github.com/dmilicic/Android-Clean-Boilerplate中的项目以及Uncle-Bob的文章/代码。现在,我没有使用RxJava,Dragger等,而是dbflow orm数据库。不想现在弄乱。
域中有几个数据存储库的接口可用于实现存储。对于每种数据,有几种方法,例如插入/添加,删除,更新,getXXXByXX等。在示例代码中,它只是用户或成本存储库,并且针对每种数据。用户在交互器中有三个文件(实现)。
互动者:
默认订户
GetUserDetails
GetUserList
用例
资料库:
用户资料库
假设有用户,成本,设备这三个存储库,并且在交互器中将有3X4--12方法文件。是否有办法减少文件并将一个存储库的方法制作为一个Impl文件(如涉及方法的UserOps)?或任何其他建议。
最佳答案
我建议您阅读“聚合”。
基本上,您只应为被视为聚合的对象提供存储库。聚集是一个始终可以独立存在并具有一定意义的对象,它包含一个或多个对象。就您而言,即使信息不多,我也要说您有2个汇总:用户和设备。用户是一件总是有意义的事情,不需要设备或花费就可以理解。另一方面,如果没有成本,那么成本就没有意义,因此,合计将是具有成本的设备。实际上,这意味着您有2个存储库,其中一个用于检索用户,另一个用于检索成本较高的设备。
再说一次,由于信息不多,很可能是您的应用程序设备中没有用户就没有意义,因此您的聚集将只是用户,当您添加/检索一个时,您会得到一个用户的设备成本。否则所有对象本身都有意义,那么您将拥有3个存储库,但我怀疑情况确实如此。