objective-c – 谁应该拥有iOS应用程序中的依赖注入对象?

前端之家收集整理的这篇文章主要介绍了objective-c – 谁应该拥有iOS应用程序中的依赖注入对象?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这可能是一个经验丰富的iOS开发人员的根本问题,但来自 Java背景,我们有很多依赖注入(DI)的好东西(即Spring),我有一些麻烦,找出谁应该拥有DI对象.不幸的是,我发现自己创造了一大堆Singleton,它变得非常讨厌的管理.

例如,我们有一些其他类想要访问的配置.目前我们只有一个配置的单例实例,这使得测试有点困难.从技术上讲,我们使用OCMock中的方法来克服这个问题.

在Java / Spring中,有一些容器创建/拥有这些对象.在iOS中,我认为与容器最近的东西是UIApplication和UIApplicationDelegate.这些东西创建/拥有这些对象将最终被注入到其他对象中是否有意义?

如果是这样,访问这些对象的策略是什么?例如,在UIApplication或UIApplicationDelegate上创建一个类别来访问这些对象,如:
[[UIApplication sharedApplication] configuration]或[[[UIApplication sharedApplication] delegate]配置]

解决方法

事实上,DI似乎并不像人们通常在iOS中使用的东西,就像我们在Java或C#中一样.

就个人而言,我倾向于创建我自己的名为Application的单例,其中包含应用程序的所有服务和信息.这样我就可以简单的获得一个简单的单例,而不是专门安装iOS(即使obj-c几乎不能在其他任何地方使用).所以在我的应用程序,我通常有:

[[Application sharedInstance] configuration]
[[Application sharedInstance] authService]

所以唯一需要单个的类是Application一(与UIApplication无关),它创建init方法中的所有服务.

猜你在找的C&C++相关文章