Swift中的Singleton。

什么是单身? 如何使用Singleton类? 为什么单身人士不好?

Singleton是iOS应用程序开发中广泛使用的设计模式之一。 单例很容易理解,并且可以保证只创建一个类的实例。 尽管已被广泛接受,但由于某些陷阱,单例也被称为反模式。 苹果在框架本身内部提供了许多单例API,例如: UserDefaults,FileManager,AppDelegate,UrlSession等。

Swift为Singleton提供了一个非常简单的实现。

//在应用程序中初始化并使用singleton类。

不要忘记将init设为私有:

使用上面的实现,您可以创建单例类并在您的代码中使用,但是如果您看到上面的代码,则会注意到,我已经创建了一个实例,并使用相同的实例(而不是共享实例)调用了该函数。 使用以上实现,您可以创建违反单例概念的同一类的许多实例。

创建单例的正确方法:初始化程序访问级别需要更改,例如–

  //立即更改启动器访问级别 
私人初始化 (){}

现在,如果您尝试创建相同单例类的实例,则编译器将抛出类似..的错误。

您的单身人士班级应该看起来像……

为什么Singleton在ios应用程序开发中如此受欢迎:

苹果本身背后的主要原因。 苹果在API中使用了很多东西,因此作为开发人员,我们始终会研究并遵循苹果标准。 另一个原因是易于访问,因为基本上可以从任何地方访问单例对象。

为什么Singletons不好:

由于对象的全局可访问性,单例易于使用,但是具有对单例对象的全局访问权限不过是单例模式的副作用。 通过使用单例,您几乎总是为了方便而牺牲透明性,因此将单例与依赖注入相结合总是一个更好的主意。

结论:

现在,您已经了解了如何创建Singleton类。 它有一些优点缺点 。 如果您在项目中使用更多的Singleton模式,则很难管理Singleton类的生命周期。 而且,它保持全局可变的共享状态。 尝试更好地避免过度使用Singleton模式,以使用依赖项注入。

我将介绍依赖项注入,以及为什么很快我的下一个主题中的单例很差。 谢谢阅读!