• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

[Swift实际操作]八、实用进阶-(1)Swift语言中的两种单例模式实际操作 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

 

本文降温你解析常见的单例模式。
单例模式可以保证一个类仅有一个实例,同时这个类还必须提供一个访问该类的全局访问点。

首先导入需要使用到的界面工具框架

import UIKit

单例对象保证了只有一个实例的存在,
这样有利于我们协调系统的整体行为。
final修饰符可以防止类被继承,还可以防止子类重写父类的属性、方法以及下标。
该修饰符不能修饰结构体和枚举。

 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()

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Swift-WebKit示例解读发布时间:2022-07-13
下一篇:
Swift 3 迁移工作总结发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap