На прошлой неделе мы обсуждали 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