Autumn SALE
Одинак

Одинак на Swift

Одинак — це породжуючий патерн, який гарантує існування тільки одного об’єкта певного класу, а також дозволяє дістатися цього об’єкта з будь-якого місця програми.

Одинак має такі ж переваги та недоліки, що і глобальні змінні. Його неймовірно зручно використовувати, але він порушує модульність вашого коду.

Ви не зможете просто взяти і використовувати клас, залежний від одинака, в іншій програмі. Для цього доведеться емулювати там присутність одинака. Найчастіше ця проблема проявляється при написанні юніт-тестів.

Складність:

Популярність:

Застосування: Багато програмістів вважають Одинака антипатерном, тому його все рідше і рідше можна зустріти в Swift-коді.

Ознаки застосування патерна: Одинака можна визначити за статичним створюючим методом, який повертає один і той же об’єкт.

Наступні приклади доступні на Swift Playgrounds.
Вдячність Alejandro Mohamad за створення версії Playground.

Одинак іншими мовами програмування

Одинак на C# Одинак на C++ Одинак на Go Одинак на Java Одинак на PHP Одинак на Python Одинак на Ruby Одинак на Rust Одинак на TypeScript