CVKInjector 是 Objective-C 的一个简单的依赖注入辅助工具。您只需将一个类注册到注入器中,然后从需要它的地方通过接口请求一个对象即可。
没有花哨的宏,没有额外的语法,也没有像 Spring 那样自动注入的东西。这是一套任何人都容易理解的简洁的 Objective-C。
依赖于接口而不是具体实现有助于更好地设计和测试。例如,控制器不需要知道它使用的是哪个数据源,是网络、数据库还是模拟。
在某些情况下不可能将具体实例传递给初始化器,并且它会因许多对象而变得臃肿。依赖注入提供了一种干净的方式,将项目中的类解耦。
使用 [CVKInjector instance]
来访问单例注入器对象。将一个类注册到注入器中。在任何需要第一个对象之前都可以,但将注册添加到 +load
方法是一个更简单的选项。
+ (void)load
{
[[CVKInjector instance] registerClass:self];
}
您还可以将类注册为单例,这样就会注入相同的实例。所有类都使用普通的 -init
构造,并且不可配置。
每当您需要实现某个特定协议的对象时,您就调用 -objectForInterface:
方法。
@property (nonatomic) id<ProtocolName> property;
self.property = [[CVKInjector instance] objectForInterface:@protocol(ProtocolName)];
用户不知道确切的类实现,也不确定它是一个单例还是一个新的实例。
CVKInjector 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中
pod 'CVKInjector'
Romans Karpelcevs,[email protected]
CVKInjector 以 MIT 许可证提供。有关更多信息,请参阅 LICENSE 文件。