我有一个Play应用程序,并且想要从该应用程序中取出一个通用操作,并使其成为一个库,以便在其他Play应用程序中使用。
这个提议库有一个合同(接口)和最上面的几个实现。
如果我使用guice绑定联系人和实现与命名注入(使用批注),并在play应用程序中使用适当的批注调用它们而又未在apply应用程序中实例化库类怎么办?
答案 0 :(得分:1)
在库中使用DI很好,尽管这会增加限制,即库用户也将被迫使用DI。我通常在编写的Java库中使用DI,但随后将面向客户的接口包装在工厂中。这样,您可以两全其美!