【设计模式】单例模式

学习文章

原理图

单例模式原理图.png

说明

  • 单例模式人人用过,严格的单例模式很少有人实现
  • 严格的单例模式指的是无法通过常规的 alloc init 方法来生成对象,派生出来的子类也不能产生出对象,而只能通过单例的方法获取到对象

源码

严格的单例模式不应该被继承,不应该被复制,不应该被new等等,只应该独此一家.

Singleton.swift

import Foundation

enum SingletonError : ErrorType {

    case CannotBeInherited
}

class Singleton {
    
    /* --不能被子类调用-- */
    static func sharedInstance() throws -> Singleton {
        
        guard self == Singleton.self else {
        
            print("--------Can't be inherited !--------")
            throw SingletonError.CannotBeInherited
        }
        
        struct Static {

            static let sharedInstance = Singleton()
        }
        
        return Static.sharedInstance
    }
    
    private init()  {

    }
}
  

下载源码

下载地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容