在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本文降温你解析常见的单例模式。 首先导入需要使用到的界面工具框架 import UIKit 单例对象保证了只有一个实例的存在, 1 final class SingleClass:NSObject 2 { 3 //使用static修饰符,定义一个静态常量。静态常量在实例调用结束后不会消失,并且保留原值, 4 //即其内存空间不会被释放。当下次调用实例时,仍然使用常量原有的值 5 static let sared = SingleClass() 6 //为了保持一个单例的唯一性,单例的构造器必须是private的。 7 //以防止其他对象也能创建出单例类的实例。 8 private override init(){ } 9 //添加一个实例方法,用来实现具体的业务功能 10 func say() 11 { 12 print("Hello,Strengthen!") 13 } 14 } 这样就完成了第一个单例模式的示例,当需要获得示例的对象时,只需调用其静态属性以获得单例对象。 SingleClass.shared.say() 接着使用静态变量的方式,实现第二个单例模式。 1 final class SecondSingletonClass: NSObject 2 { 3 //使用static修饰符,定义一个静态变量,在第一个示例中定义的是一个静态常量 4 //static let sared = SingleClass() 5 static var shared: SecondSingletonClass() 6 { 7 //借助结构体来存储类型的变量(class var),并使用let修饰符来保证线程的安全 8 struct static 9 { 10 static let instance: SecondSinglectonClass = SecondSinglectonClass() 11 } 12 //然后返回结构体的静态常量 13 return Static.instance 14 } 15 //为了保证一个单例的唯一性,单例的构造器必须是私有的。 16 //以防止其他对象也能创造出单例类的实例 17 private override init(){ } 18 //同样添加一个实例方法,用来实现具体的业务功能 19 func say() 20 { 21 print("Hello,Strengthen!") 22 } 23 } 这样就完成了第二个单例模式的示例。当需要获得示例对象时, SecondSingletonClass.shared.say() |
请发表评论