Mur*_*fin 4 scala guice playframework
Play Framework 2.4支持Google Guice依赖注入
使用的优点是什么
@Singleton class A
Run Code Online (Sandbox Code Playgroud)
代替
object A
Run Code Online (Sandbox Code Playgroud)
对于单身人士?
如果A没有依赖关系,我可以看到使用@Singleton classover的三个优点object:
如果你想测试A,并声明它,因为@Singleton class你可以选择子类化它来模拟你的测试中的一些函数,而这是不可能的object.
如果您使用object,那么客户A直接引用它会非常诱人,导致强耦合系统,但是使用@Singleton class它们来考虑A实例化的位置,可能会导致更加分离的设计.
如果您以后改变主意并允许多个实例A,那么如果您选择使用重构将更容易@Singleton class.
A但是,如果有依赖关系,则@Singleton class允许它们在构造上进行依赖注入,而对于对象,只有在将依赖关系声明为可变的情况下才能实现(例如:var使用getter/setter方法).