本文是自己通过阅读 Dependency Injection:Give Your iOS Code a Shot in the Arm 进行总结+翻译的,有错误之处请不吝啬的指出。下面是正文:
依赖注入可以通过初始化方法(或构造函数)传递所需要的参数,或者通过属性(setter)传递。这里将对这两种方法进行讲解。
初始化方法注入:
- - (instancetype)initWithDependency1:(Dependency1 *)d1
- dependency2:(Dependency2 *)d2;
属性注入:
- @property (nonatomic, retain) Dependency1 *dependency1;
- Dependency2 *dependency2;
一般更趋向于初始化注入,如果在初始化(构造函数)的时候没办法进行注入,才通过属性进行注入。在通过初始化注入的情况下,这些依赖可能仍然需要作为属性存在,但是这些属性应该被设置为只读(readonly)的。
为什么使用依赖注入