Поиск по этому блогу

понедельник, 26 мая 2014 г.

Шаблоны проектирования. Singleton (Одиночка)

Шаблон проектирования Singleton в переводе на русский Одиночка. Наверное,  один самых распространенных шаблонов проектирования.  Не очень сложен для понимания и для реализации. Существует несколько способов реализации этого шаблона.




// Самый простой вариант - без синхронизации,
// не работает в многопоточных приложениях
public class MySingleton {
  private static MySingleton instance;
 
  private MySingleton() {
  }
 
  public static MySingleton getInstance() {
    if (instance == null) {
      instance = new MySingleton();
    }
    return instance;
  }
}

Как сделать

1. Создаем сам Java-класс
2. Создаем private конструктор этого класса
3. Создаем private static переменную класса. Тип этой переменной сам класс.
4. Создаем public метод, который будет проверять на null нашу статическую приватную переменную  и возвращать ее.

Таким образом, в любой момент времени мы сможем получить только один экземпляр нашего класса. 

Достоинства петтерна Singleton

Единственный экземпляр класса и контролируемый к нему доступ.

Недостатки паттерна Singleton

Глобальные объекты могут плохо сочитаться с объектным программированием (плохая масштабируемость)

Комментариев нет:

Отправить комментарий