【发布时间】:2019-05-22 02:08:48
【问题描述】:
看过很多 Dagger 演示应用后,我并不清楚业务对象的放置位置。在典型的三层应用程序中,您有 ui、业务层和数据访问层。 MVP 本质上是一个三层架构。
Dagger 处理组件和模块,我已经看到演示应用程序将业务逻辑放在模块中。但是根据 MVP 架构,业务逻辑属于 Presenter 层,因为该层假定充当 ui 和模型之间的桥梁。许多这些演示应用程序的模型仅由一个类组成,该类具有用于存储和检索数据的公共字段。
有人能澄清一下应该做的正确方法吗?
【问题讨论】:
-
如果您必须从您的问题中删除 dagger 或 MVP,您会选择哪一个?因为你以为它们是相互交织的,其实它们并没有任何关系
-
虽然它们之间没有任何关系,但实际上开发人员确实将这两者结合起来,并且经常将业务逻辑放在模块中,而 MVP 声明它应该放在模型中。所以这个问题应该得到解决。我见过太多的应用程序将业务逻辑放在属于 Dagger 的区域中。 Dagger 中的模块只是 Dagger 需要的某种机制。然而,开发人员不断将业务逻辑放在那里。我不是说这是错的。只是说这很令人困惑。
-
你能提供一个项目或教程的链接吗?因为我从来没有见过类似的东西。 Dagger 是一个简单的 DI 库,如果它的唯一目的是将依赖项注入真实的业务对象,则看不到您将如何将业务逻辑放在那里。