1
ではなく、それを作成します1 Cであることの、次のシナリオスカラ:依存性注入
私はCに動物のインスタンスを提供することができますどのようにabstract class Animal {/***/}
class Dog(s : String) extends Animal {/***/}
class Cat(s :String) extends Animal {/***/}
class C() {
val animal: Animal = new Dog(name)
private def name = "name for animal that C knows how to calculate"
}
を考えると?
それから、私の私の目標 である。しかし、これはクリーンなソリューションです
val bWithDog = new B((name: String) => new Dog(name))
val bWithCat = new B((name: String) => new Cat(name))
ことができます
class B(f : String => Animal) {
val animal: Animal = f(name)
private def name = "name for animal that B knows how to calculate"
}
ような何かをすることは可能でしょうか? Cのみがその名前を計算する方法を知っているので、Animal to Cを提供することは意味がありませんか?
私はC以外の動物をどのように構築するか分かりません。なぜなら、Cはその名前を設定する方法を知っているからです。 – Bruno
ああ、あなたは何を意味するのか分かりません。 – pedrofurla