Inversify toFactory vs toDynamicValue

问题描述 投票:6回答:1

This related question显示examples from the documentation,但没有解释InversifyJS toFactorytoDynamicValue之间的实际区别

toDynamicValue接受工厂功能,而toFactory接受高阶工厂功能。但toDynamicValue也可以将工厂功能作为一种价值。

他们可以达到同样的目的吗?他们的行为如何不同?

在这个例子中,BarBaz有何不同?

container.bind('Bar').toDynamicValue(
  context => fooName => context.container.getNamed(Foo, fooName)
)

container.bind('Baz').toFactory(
  context => fooName => context.container.getNamed(Foo, fooName)
)
javascript ioc-container inversifyjs
1个回答
1
投票

正如我所看到的,动态值语法是您传递给任何值/ lambda的语法,导致创建实例。

Factory语法导致您在工厂中获得上下文。从上下文中,您可以获取容器并使用service-location来解析构建对象实例所需的其他对象。所以它是一个间接提供上下文,因此也提供容器。

© www.soinside.com 2019 - 2024. All rights reserved.