Единичен модел

И нека ви разкажем нещо интересно - за дизайнерския модел на Singleton. Някой знае и използва, но някой изведнъж е полезен.

SoundManager instance

Според една от дефинициите моделът на дизайна е пример за най-успешното дизайнерско решение в областта на обектно-ориентираното програмиране, описание на взаимодействието на обекти и класове за решаване на стандартен дизайнерски проблем. С други думи, това е най-успешният подход за изграждане на структурата на класовете и връзката между тях за решаване на определен стандартен проблем при проектирането на програми.

Singleton ("Singleton" - самотник) се използва, когато цялото приложение се нуждае само от един екземпляр на определен клас, който може да бъде достъпен от всяко място.

Да предположим, че имаме определен клас SoundManager, който е отговорен за възпроизвеждането на всички звуци в играта. Да приемем, че има публичен метод playExplosionSound (). Преди да разбера за синглона, за да извикам този метод от някакъв дълбоко скрит клас, трябваше да направя нещо като myParent.myParent.soundManager.playExplosionSound () или дори по-отвратително.