台风支持" Autowire"和"范围"定义

时间:2014-05-23 06:39:59

标签: objective-c typhoon

如果我将台风与java中常见的IOC容器弹簧之一进行比较,我在文档中找不到两个重要的故障。

如何注释@autowired? 如何注释@Scope?特别是SCOPE_SINGLETON和SCOPE_PROTOTYPE之间的distinglish。

关于春天的更多信息: http://docs.spring.io/spring/docs/4.0.0.RELEASE/spring-framework-reference/html/beans.html#beans-standard-annotations

1 个答案:

答案 0 :(得分:0)

Typhoon支持原型和单例示波器以及专为移动和桌面应用程序设计的两个其他示波器。

在服务器端应用程序中,服务器可能在给定时间支持任何应用程序的用例。因此,这些组件具有单例范围是有意义的。在移动应用程序中,虽然后台服务,但一次为一个用例提供服务更为常见。并且存在内存,CPU和电池限制。

因此Typhoon的默认范围是TyphoonScopeObjectGraph,这意味着在分辨例如顶级控制器时对其他组件的引用将被共享。通过这种方式,可以加载对象图,然后在完成时将其丢弃。

还有以下内容:

自动连接宏与本机样式程序集:

不幸的是,Objective-C对使用宏的“注释”的运行时支持有限。所以选择是使用编译时预处理器,它有一些缺点,或者解决限制并强制使用古怪的风格。我们决定最好(现在)使用宏仅用于简单的约定配置情况。

为了获得更多控制,我们强烈建议您使用原生样式的装配。这允许以下内容:

  • 模块化应用程序的配置,以便架构讲述故事。
  • IDE代码完成和重构在没有任何其他插件的情况下工作。
  • 使用Objective-C的类似AOP的动态,可以使用程序集界面在运行时解析组件。

使用本机样式设置范围:

- (id)rootController
{
    return [TyphoonDefinition withClass:[RootViewController class] 
        configuration:^(TyphoonDefinition* definition)
    {
        definition.scope = TyphoonScopeSingleton;
    }];
}