簡體   English   中英

Macwire注射工廠

[英]Injectable factory with Macwire

我正在挑逗MacWire的依賴注入。

我發現Guice有用的一件事就是輔助注入,自動裝配工廠,幫助你創建一些需要運行參數的服務。

Macwire有類似的東西嗎?

支持可注射工廠,但實際上並不是MacWire的功能,而是MacWire的精神,你可以“只使用Scala”。

在這種情況下,您可以使用函數類型。 按照Guice示例,假設您要創建一個由startDate: Date參數化的Payment startDate: Dateamount: Money 您可以定義依賴項:

val paymentFactory = (startDate: Date, amount: Money) => wire[Payment] 
                     // or create the payment in any other way

然后將其用作普通依賴項:

class ServiceUsingPayment(paymentFactory: (Date, Money) => Payment)
val serviceUsingPayment = wire[ServiceUsingPayment]

您還可以使用類型別名來避免重復函數簽名,並在聲明其他服務的依賴項時使用該別名(如上面的ServiceUsingPayment ):

type PaymentFactory = (Date, Money) => Payment

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM