【发布时间】:2015-07-21 15:32:41
【问题描述】:
在我创建的共享类中,共享类中的某些方法仅从视图控制器调用一次。我需要在视图控制器类中添加这些方法吗?直接在视图控制器中添加这些方法会提高性能吗?
我知道单例实例将被分配一次,它将保留给整个应用程序,在这种情况下,从单例类调用方法或直接在视图控制器中添加方法不会产生任何性能差异是我猜的!
【问题讨论】:
标签: ios objective-c singleton
在我创建的共享类中,共享类中的某些方法仅从视图控制器调用一次。我需要在视图控制器类中添加这些方法吗?直接在视图控制器中添加这些方法会提高性能吗?
我知道单例实例将被分配一次,它将保留给整个应用程序,在这种情况下,从单例类调用方法或直接在视图控制器中添加方法不会产生任何性能差异是我猜的!
【问题讨论】:
标签: ios objective-c singleton
如果这些方法不属于 View Controller 类,您应该将这些方法分开保存在 Model 类(通常是单例)中。这样您就可以实现 MVC 设计模式,该模式非常适合应用于您的项目,原因有很多(请阅读一本好的设计模式书籍了解更多信息)。
性能此时您不必担心(通过将这些方法直接添加到视图控制器几乎看不到任何改进),但代码准备就绪和干净的代码实践是真正有回报的东西。
还要记住,视图控制器用于模型和视图之间的中介控制,因此与此任务相关的任何内容都应该在视图控制器代码中。
【讨论】:
实际上,Singleton 类实例在每个应用程序中初始化一次。因此,理想情况下,您应该使用它在视图控制器之间共享公共数据。
现在关于方法实现。如果这些方法正在执行与视图控制器无关的操作,例如,如果这些方法正在修改某些数据并返回到控制器,并且如果这在所有控制器中都很常见,那么您可以在 Singleton 类中实现它。如果您使用任何一种方法,我认为不会有任何大的性能问题。它只是干净编码的问题。
【讨论】: