我想创建一个将保留所有实用程序方法的类,并将在整个应用程序中使用这些方法。 问题:1 创建一个单例类并在其中保留所有必需的方法是好事,还是应该创建一个所有函数都是静态的类? 问题:2 快速的上述两种方法之间的主要区别是什么? 问题:3 它会如何影响iOS的性能?
当然,这听起来令人困惑并且可以辩论。但是,从最佳实践中,我可以提出一些建议。
Singleton 通常用于创建资源密集型和一个计时器初始化,例如:数据库连接器,登录处理程序等。
实用程序类 是仅具有静态函数和变量的类。它不应处理异步任务和昂贵的资源处理(例如,打开数据库连接器)。
在您的情况下,如果该实用程序正在执行一些资源密集型过程,则最好将其包装为单例。如果没有,那么我认为类中的静态函数更好。这也是因为,Swift将使用 static dispatch调度 类中的所有静态函数。尽管Swift喜欢进行优化,但是在Singleton中这不是正确的。
*就使用Objective-C运行时而言, *静态调度比动态调度快4倍 。迅速也是如此。但是,动态调度只需要4纳秒。
我希望这可以使您清楚。