Swift Design Patterns: Singleton
Зачем нужен?
Паттерн Singleton применяется, если в приложении должен использоваться один и только один экземпляр класса. Кроме того, желательно иметь ленивую инициализацию и глобальный доступ.
Определение
- гарантирует, что класс имеет только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру
Реализация
- Объявите статичный аттрибут-константу в классе
- Используйте приватный метод доступа у инициализатора
Пример
Реализация на языке Swift получается в одну строчку. Связано это с тем, что для глобальных и статичных переменных структур, перечислений и классов используется ленивая инициализация. Ленивая инициализация запускается единожды и является потокобезопасной(атомарной), т.к используется dispatch_once
class SomeClass {
static let sharedInstance = SomeClass()
private init() { }
// другие методы
}