gpt4 book ai didi

scala - 使用蛋糕模式的传递 DI

转载 作者:行者123 更新时间:2023-12-04 18:08:03 27 4
gpt4 key购买 nike

我正在尝试使用蛋糕模式进行依赖注入(inject),如下所示:

trait FooComponent {
val foo: Foo

trait Foo;
}

trait AlsoNeedsFoo {
this: FooComponent =>
}

trait RequiresFoo {
this: FooComponent =>

val a = new AlsoNeedsFoo with FooComponent{
val foo: this.type#Foo = RequiresFoo.this.foo
}

}

但编译器提示 RequiresFoo.this.type#Foo不符合预期类型 this.type#Foo .

所以问题是:是否可以创建 AlsoNeedsFoo RequiresFoo 内的对象这样依赖注入(inject)才能正常工作?

最佳答案

使用蛋糕模式,您不应该实例化其他组件,而是扩展它们。

在您的情况下,您是否需要 AlsoNeedsFoo 的功能你应该这样写:

this: FooComponent with AlsoNeedsFoo with ... =>

并将所有内容放在顶层:
val app = MyImpl extends FooComponent with AlsoNeedsFoo with RequiresFoo with ...

关于scala - 使用蛋糕模式的传递 DI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21987490/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com