1. Описание
1) Одиночный рисунок: убедитесь, что существует только один экземпляр класса, создайте его самостоятельно и предоставьте этот экземпляр системе
2) Классификация картины Singleton: шаблон Singleton (Instanced Abode к своему собственному ссылке при загрузке класса), Lazy Singleton Pattern (объект будет создаваться только при получении метода, который получает экземпляр, такой как GetInstance) (Java Singleton Производительность режима лучше, чем Lazy Singleton Mode, Lazy Singleton Mode обычно используется в C ++)
3) Элементы синглтонского рисунка:
а) Частный метод строительства
б) Частный статический ссылочный указывает на свой собственный экземпляр
в) общественный статический метод со своим собственным экземпляром в качестве возвращаемого значения
2. Пример
Голодный синглтон режим:
Кода -копия выглядит следующим образом:
пакет com.wish.modedesign;
открытый класс Hungrysingleton {
Частный статический экземпляр Hungrysingleton = new Hungrysingleton ();
Private Hungrysingleton () {
}
Public Static Hungrysingleton getInstance () {
вернуть экземпляр;
}
}
Lazy Singleton Mode:
Кода -копия выглядит следующим образом:
пакет com.wish.modedesign;
открытый класс Singleton {
private singleton () {
}
частный статический экземпляр Синглтона;
Общественный статический синхронизированный Singleton getInstance () {// Обратите внимание на безопасность потоков, когда многопоточно
if (ancess == null) {
encess = new Singleton ();
}
вернуть экземпляр;
}
}
Драйвер тестового класса. Java
Кода -копия выглядит следующим образом:
пакет com.wish.modedesign;
Драйвер публичного класса {
public static void main (string [] args) {
Singleton s1 = singleton.getinstance ();
Singleton s2 = singleton.getinstance ();
System.out.println (S1 == S2);
}
}
3. Преимущества и применимые сценарии
1) Преимущества режима Синглтона:
В памяти есть только один объект, сохраняющий пространство памяти.
Избегание частого создания и разрушения объектов может улучшить производительность.
Избегайте нескольких профессий общих ресурсов.
Можно получить доступ во всем мире.
2) Применимые сценарии:
Объекты, которые необходимо часто создаваться, а затем уничтожать.
Объекты, которые занимают слишком много времени или слишком много ресурсов при создании объектов, но часто используются.
Stateful инструмент, похожий на инструмент.
Объекты, которые часто получают доступ к базам данных или файлам.
4. Что следует отметить при использовании
1) При использовании вы не можете создать синглтон с режимом отражения, в противном случае будет создан новый объект.
2) Обратите внимание на проблемы безопасности потоков при использовании Lazy Singleton Mode
3) Голодные синглтонские и ленивые методы строительства картины являются частными и, следовательно, не могут быть унаследованы.