单例模式是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。
iOS里有很多单例模式的存在: UIApplication、NSUserDefaults、通知中心等。单例模式有很多种写法,直到写此文的今天,在Swift里实现单例的最佳实践就是这样的:
class FileManger{
static let sharedInstance = FileManger()
private init (){}
//TODO
}
私有化初始化方法,防止外部调用创建不同实例,利用饿汉模式,在类加载时就已经创建了实例,防止多线程下创建多个实例的问题。
单例模式因为拥有和APP一样长的生命周期,到处都可以访问单例对象修改状态,不能继承,并且违反了单一职责的设计原则,饱受诟病,但是在iOS里单例却大行其道,设计自己的单例类时一定要谨慎!
网友评论