台风 - 到处注入相同的实例

时间:2014-10-17 02:05:11

标签: ios dependency-injection ios8 typhoon

我有一个A级注射在几个地方。我想在任何地方注入相同的A实例 - 类似于单身但注射。

是否有可能用Typhoon

做到这一点

1 个答案:

答案 0 :(得分:2)

Typhoon有三个可用于此的范围,TyphoonScopeSingletonTyphoonScopeLazySingletonTyphoonScopeWeakSingleton

设置组件的范围:

- (PFRootViewController *)rootViewController
{
    definition.scope = TyphoonScopeSingleton;
}

使用此范围可以提供单例的所有优点,而DI模式可以避免这些缺点。

有关台风示波器的更多信息:

其他语言的许多DI容器的默认范围为 singleton ,而在Typhoon中,默认范围为TyphoonScopeObjectGraph。具有默认的单例范围对于服务器环境是有意义的,其中应用程序可以在给定时间为任何用例提供服务。

与此同时,Typhoon针对移动和桌面环境,因此对象图范围旨在将程序集加载到内存(视图控制器示例)中,然后在继续使用另一个用例后将其丢弃。将共享任何共享引用,例如指向父代(例如委托)的循环依赖项。

当然,虽然这是默认值,但有些情况需要其他范围。更多信息可以在scopes section of the user guide中找到。