我对杜松子酒有一个朦胧的了解,但让它用于注射演示者,等等。

我正在尝试将一个自制的“用户”类注入我的所有演示者,以获取当前登录的用户。

我已经在用户类上的构造函数中添加了@inject,并将用户添加到我的杜松子酒模块中...但是除此之外,我完全迷失了。我是否将其绑定到我的应用程序主持人(尝试过,但是由于用户没有扩展我的AppPresenter)会遇到错误吗?作为单身人士?这甚至是正确传递这些数据的正确方法吗?

我讨厌在这里发布此信息(不是寻找免费的家庭作业),但是我在其他任何地方都找不到一个体面的教程/示例。

非常感谢。

有帮助吗?

解决方案

我看到了两种可能性:

  • 注入来源是 @provides 方法或 提供者. 。但是,问题在于如何将当前登录的用户传递给这些方法,因为全球状态是不行的。一个可能的解决方案是通过事件总线将其传递给它,但是在这一点上,似乎有点击败了DI的全部点(注射当前登录的用户不是iMho DI的角色)。
  • 通过事件总线传递用户。创建一个自定义事件,当用户登录/更改时会发出触发的自定义事件,一些演示者会收听该事件(毕竟,并非所有演示者都必须了解当前的用户)。

我更喜欢并使用第二种方法 - 虽然di很棒,但在您描述的方式上使用它似乎对我来说有点黑。我强烈建议检查一下 Guice文档 - 杜松子酒基本上是与GWT合作的Guice,因此核心是相同的。对于其他一些指针,如何有效地使用DI,并且通常编写可测试的代码,我强烈建议您使用 Misko Hevery的博客编写可测试代码的指南 他放在那里(Google内部使用)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top