一、概述
Singleton属于创建型模式中的一种,保证一个类仅有一个实例,并提供一个访问它的全局访问点。
二、适用性
1.当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
2.当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。
三、参与者
1.Singleton:定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类操作,可能负责创建它自己的唯一实例。
四、类图
五、代码实现
1.Singleton:定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类操作,可能负责创建它自己的唯一实例。Singleton.swift
//
// Singleton.swift
// 23设计模式
//
// Created by 阳君 on 14/11/28.
// Copyright (c) 2014年 六月. All rights reserved.
//
import Foundation
/// Singleton定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类操作,可能负责创建它自己的唯一实例。
struct Singleton {
static let sing:Singleton = Singleton()
init() {
print("创建init")
}
static func getInstance() ->Singleton {
return sing;
}
}
六、测试
// 单例模式
// 方法一:通过方法获取
let y = Singleton.getInstance()
// 方法二:通过属性获取
let j = Singleton.sing