Одиночка (Singleton) — различия между версиями
Материал из Вики ИТ мехмата ЮФУ
Admin (обсуждение | вклад) (→Описание) |
Admin (обсуждение | вклад) (→Участники) |
||
Строка 13: | Строка 13: | ||
==== Участники==== | ==== Участники==== | ||
− | * | + | *Singleton - одиночка |
+ | Определяет операцию Instance, которая позволяет клиентам получать доступ к единственному экземпляру. | ||
+ | Несет ответственность за создание этого экземпляра. | ||
+ | * | ||
=== Пример === | === Пример === |
Версия 09:10, 30 сентября 2014
Назначение
Обеспечивает наличие в системе только одного экземпляра заданного класса, предоставляет доступ к этому экземпляру.
Описание
Для некоторых классов важно чтобы существовал один экземпляр. Как это гарантировать? Необходимо чтобы сам класс контролировал, что у него есть только один экземпляр и запрещал создание дополнительных экземпляров.
Реализация
Диаграмма классов
Участники
- Singleton - одиночка
Определяет операцию Instance, которая позволяет клиентам получать доступ к единственному экземпляру. Несет ответственность за создание этого экземпляра.
Пример
class MainApp
{
static void Main()
{
Singleton s1 = Singleton.Instance();
Singleton s2 = Singleton.Instance();
}
}
class Singleton
{
static Singleton instance;
protected Singleton()
{
}
public static Singleton Instance()
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}