清洁架构交互器实现

时间:2016-05-05 19:35:10

标签: java android repository

我试图用Android Clean Arch分隔每一层。我从https://github.com/dmilicic/Android-Clean-Boilerplate和Uncle-Bob的文章/代码开始关注该项目。目前,我没有使用RxJava,Dragger等只是dbflow orm数据库。不想现在弄得一团糟。

有几个数据存储库'用于存储实现的域中的接口。对于每种数据,有几种方法,如插入/添加,删除,更新,getXXXByXX等。在示例代码中,它只是用户或成本存储库,并且对于每个数据,例如。用户在交互器中有三个文件(实现)。

相互作用物: DefaultSubscriber GetUserDetails GetUserList 用例

存储库: UserRepository

假设有User,Cost,Device这样的三个存储库,并且在交互器中将有3X4--12方法文件。如果有办法减少文件并将一个存储库的方法组成一个像UserOps这样涉及方法的Impl文件?或任何其他建议。

1 个答案:

答案 0 :(得分:0)

我建议你阅读Aggregates。

基本上,您应该只为被视为聚合的对象拥有存储库。聚合是一个可以始终独立且有意义的对象,它包含一个或多个对象。在您的情况下,即使没有大量信息,我也说您有2个聚合:用户和设备。用户总是有意义,并不需要设备或成本才有意义。另一方面,成本没有成本是没有意义的,因此聚合将是具有成本的设备。实际上,这意味着您有2个存储库,一个用于检索用户,另一个用于检索带来成本的设备。

同样,由于没有很多信息,很可能在你的应用程序设备中没有用户就没有意义,所以你的聚合只是用户,当你添加/检索一个你得到一个拥有成本的设备的用户。或者所有对象本身都有意义,在这种情况下你会有3个存储库但我怀疑是这样的。