首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带Macwire的注射用工厂

带Macwire的注射用工厂
EN

Stack Overflow用户
提问于 2014-08-23 00:42:13
回答 1查看 265关注 0票数 3

我正在调侃MacWire以进行依赖注入。

我在Guice中发现的一件有用的事情是辅助注入,它自动创建一个工厂,它将帮助您创建一些需要运行参数的服务。

有类似的东西吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-13 23:54:33

支持可注射工厂,但实际上并不是MacWire的一个特性,而是按照MacWire的精神,您可以“只使用Scala”。

在这种情况下,您可以使用函数类型。按照Guice示例,假设您希望创建一个由Paymentamount: Money参数化的参数。您可以定义依赖项:

代码语言:javascript
复制
val paymentFactory = (startDate: Date, amount: Money) => wire[Payment] 
                     // or create the payment in any other way

然后将其用作正常的依赖关系:

代码语言:javascript
复制
class ServiceUsingPayment(paymentFactory: (Date, Money) => Payment)
val serviceUsingPayment = wire[ServiceUsingPayment]

您还可以使用类型别名来避免重复函数签名,并在声明另一个服务的依赖项时使用该别名(如上面的ServiceUsingPayment中所示):

代码语言:javascript
复制
type PaymentFactory = (Date, Money) => Payment
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25457400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档