美文网首页
Swift3.0之单例

Swift3.0之单例

作者: 践行者_Leng | 来源:发表于2017-09-01 23:27 被阅读18次

前言

单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。数学与逻辑学中,singleton定义为“有且仅有一个元素的集合”。

Swift3.0中的访问权限的关键字目前有五个:open—public—internal(默认)—fileprivate—private。我这里面是由高到低依次排列的。

open:修饰的类(Class)在内部和外部都可以被访问和继承。修饰的函数(func)在模块(Module)内部和外部都可以被访问和重载(override)

public:修饰的类(Class)在内部被访问和继承,在外部只能访问。修饰的函数(func)在模块(Module)内部可以被访问和重载(override),在外部只能访问

internal:默认访问级别,internal修饰符可写可不写。internal访问级别所修饰的属性或方法在源代码所在的整个模块都可以访问。如果是框架或者库代码,则在整个框架内部都可以访问,框架由外部代码所引用时,则不可以访问。如果是App代码,也是在整个App代码,也是在整个App内部可以访问。

fileprivate: 文件内私有属性和方法,仅在当前文件中可以访问,包括同一个文件中不同的类。

private: 私有属性和方法,仅在当前类中可以访问,不包括分类。

扩展关键字:final 修饰的类(class)任何地方都不能不能被继承,修饰的函数(func)任何地方都不能被重载(override)。

进入主题

单例写法一(通过final static 以及 private关键字修饰)

final  class  MySingleton: NSObject{

       static let  shareSingleton = MySingleton()

       private override init()  {}

}


单例写法二(通过静态属性的返回值就是私有类)

private let single = SingletonClass()

final class SingletonClass:NSObject{

        static var shareClass:SingletonClass{

              return  single

          }

         fileprivate  override  init()  {}

}


单例写法三(通过静态属性的返回值就是一个结构体的参数值)

final  class  SingletonClassWithOther:NSObject{

        static  var  shareOther:SingletonClassWithOther{

                   struct  StartUse{

                             static  let  sureValue:SingletonClassWithOther=SingletonClassWithOther()

                  }
                  return  StartUse.sureValue

       }

      private  override  init() {}

}


最后调用如下:

相关文章

  • Swift3.0之单例

    前言 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中...

  • Swift3.0 单例

    OC单例: Swift 3.0

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

  • Java23种设计模式之「单例模式」

    单例模式 之 holder 模式 (推荐) 单例模式 之 饱汉模式(懒汉模式) 单例模式 之 双重锁检查 (Dou...

  • Swift3.0 单例实战

    概述 整个应用生命周期中,只存在唯一一个实例对象的类被称作单例,所以的模块共同使用这一个对象的设计叫做单例模式 单...

  • Swift3.0 单例模式

    常见的有这么4种方法 第一种简单到爆的 final关键字的作用是这个类或方法不希望被继承和重写 第二种 完全是OC...

  • 设计模式之单例模式详解

    设计模式之单例模式详解 单例模式写法大全,也许有你不知道的写法 导航 引言 什么是单例? 单例模式作用 单例模式的...

  • 单例模式安全之反射攻击

    单例模式安全之反射攻击 源码 单例模式这里就不谈了,什么是单例模式可参考七种Java单例模式详解,这里是关于单例模...

  • 单例模式

    单例模式及C++实现代码单例模式4种实现详解 c++11改进我们的模式之改进单例模式 单例模式(Singleton...

  • [Swift3.0]单例模式(学习)

    swift 3.0中废弃了dispatch_once,这里只记录一个标准的单例写法,具体相关的内容,可以看看这篇文...

网友评论

      本文标题:Swift3.0之单例

      本文链接:https://www.haomeiwen.com/subject/muhljxtx.html