scala – Play Framework依赖注入Object vs @Singleton Class

前端之家收集整理的这篇文章主要介绍了scala – Play Framework依赖注入Object vs @Singleton Class前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Play Framework 2.4支持Google Guice依赖注入

使用的优点是什么

@Singleton class A

代替

object A

对于单身人士?

解决方法

如果A没有依赖关系,我可以看到在对象上使用@Singleton类的三个优点:

>如果你想测试A,并将其声明为@Singleton类,你可以选择子类化它来模拟测试中的一些函数,而对象则不可能.
>如果使用对象,A的客户端直接引用它是非常诱人的,导致强耦合系统,但使用@Singleton类强制他们考虑实例化A的位置,可能导​​致更加分离的设计.
>如果您以后改变主意,并允许多个A实例,那么如果您选择使用@Singleton类,重构将更容易.

但是,如果A具有依赖关系,则使用@Singleton类允许它们在构造上依赖注入,而使用对象时,只有将依赖关系声明为可变(例如:使用getter / setter方法的var)时才可以使用它.

猜你在找的Scala相关文章