На прошлой неделе мы обсуждали Factory Pattern, который входит в группу создания шаблонов. Сегодня отмечу еще один простой узор.
Синглтон - один из лучших способов создания объекта. Этот шаблон исходит из использования класса, чтобы убедиться, что только один экземпляр класса может быть создан, путем предоставления доступа к объекту напрямую без необходимости создания экземпляра объекта класса.
Идея состоит в том, чтобы создать у класса частный конструктор и статический экземпляр самого себя. Нравится
public class SingleObject { //create an object of SingleObject private static SingleObject instance = new SingleObject(); //make the constructor private so that this class cannot be //instantiated private SingleObject(){} //Get the only object available public static SingleObject getInstance(){ return instance; } public void showMessage(){ System.out.println("Hello World!"); } }
Пример
- Файл журнала, вы же не хотите отказываться от одного файла журнала. Вы хотите его правильно очистить, синхронизировать и закрыть. Это пример одного общего ресурса, которым нужно управлять.
- Аппаратное обеспечение также является примером. Встроенные системы имеют много оборудования, которое может использовать синглтоны - или, может быть, один большой
Недостатки
Миско Хевери, от Google: Это сводит с ума модульное тестирование: D
Синглтоны - это не что иное, как глобальное состояние. Глобальное состояние позволяет вашим объектам тайно завладеть вещами, которые не объявлены в их API-интерфейсах, и, как следствие, синглтоны превращают ваши API-интерфейсы в патологических лжецов.
Https://www.youtube.com/watch?v=-FRm3VPhseI
Https://www.tutorialspoint.com/design_pattern/singleton_pattern.htm