Шаблоны проектирования: синглтон в Java

Опубликовано: 2021-11-13

Шаблоны проектирования полезны для программистов, когда им нужно использовать наилучшие доступные методы разработки объектно-ориентированного программного обеспечения. Шаблоны проектирования можно понимать как хорошо зарекомендовавшие себя и опробованные решения для решения имеющейся проблемы проектирования. Дизайн-системы описывают проблему, решение, когда применять решение и его последствия. В некотором смысле шаблоны проектирования можно рассматривать как различные шаблоны, которые разработчики программного обеспечения могут реализовать при решении конкретных задач объектно-ориентированного проектирования.

Некоторые особенности использования шаблонов проектирования в Java по сравнению с кодированием с нуля включают:

  • Шаблоны проектирования уже определены и реализованы. В результате они обеспечивают стандартный подход к решению повторяющихся проблем. В этом смысле он помогает программистам сэкономить много времени и усилий.
  • Использование шаблонов проектирования обеспечивает возможность повторного использования вашего фрагмента кода, что приводит к высокой ремонтопригодности и надежности вашего кода Java. Все это затем снижает общую стоимость владения (TCO) имеющегося программного обеспечения.
  • Шаблоны проектирования упрощают чтение и понимание кода, что способствует более быстрому общению и беспрепятственной разработке программного обеспечения.

Язык программирования Java предлагает различные шаблоны проектирования для программистов и разработчиков, которые можно разделить на три категории:

  • Креативные шаблоны проектирования
  • Шаблоны структурного проектирования
  • Шаблоны поведенческого проектирования

Все эти шаблоны используются для разных вариантов использования и целей. В этой статье мы поговорим об одном виде шаблона проектирования в Java — шаблоне проектирования Singleton, который относится к категории порождающих шаблонов проектирования.

Оглавление

Шаблон проектирования Singleton в Java

Шаблон проектирования Singleton относится к категории Creational Design Pattern. Это гарантирует, что класс имеет только один экземпляр, предоставляя этому экземпляру глобальную точку доступа. При этом Singleton Design Pattern решает сразу две задачи — к ним относятся:

1. Это гарантирует, что данный класс имеет только один экземпляр.

Это важно учитывать, особенно при работе с общими ресурсами, такими как база данных или файл. Представьте, что вы создали объект, но через некоторое время решили создать новый. В шаблоне проектирования Singleton вместо получения нового объекта вы получите уже созданный. Таким образом, этот шаблон проектирования гарантирует отсутствие избыточности объектов и наличие у класса только одного экземпляра. Такое поведение невозможно воспроизвести с помощью конструкторов, поскольку вызовы конструкторов всегда должны возвращать новый объект.

2. Предоставляет глобальную точку доступа к конкретному экземпляру.

Глобальные переменные, которые вы используете для хранения важных объектов, очень удобны. Они также одинаково небезопасны, поскольку любой фрагмент кода может перезаписать содержимое ваших глобальных переменных, что приведет к ошибочному фрагменту кода для вас. Как и глобальные переменные, Singleton Patterns позволяет вам получать доступ к различным объектам из любой точки программы. Однако, в отличие от глобальных переменных, Singleton Patterns защищает этот экземпляр от перезаписи другой программой.

В настоящее время шаблон проектирования Singleton настолько широко используется и распространен, что программисты могут называть что-либо Singleton, даже если он решает только одну из перечисленных выше проблем. Все реализации шаблонов проектирования Singleton имеют следующие два общих шага:

  • Делаем конструктор по умолчанию закрытым, чтобы другие классы и объекты не могли использовать новые операторы с классами Singleton.
  • Создание статического метода создания для работы в качестве конструктора. Затем этот метод вызывает частный конструктор для создания объекта и сохраняет его в статическом поле. Все предстоящие вызовы этого конкретного метода теперь возвращают кэшированный объект.

Функционирование правительства — отличный пример из реальной жизни, чтобы понять, как работают Singleton Design Patterns. Независимо от личности лиц, составляющих правительства, название «Правительство X» является глобальной точкой доступа, которая идентифицирует группу людей, о которых идет речь.

Реализация шаблона проектирования Singleton в Java

Пожалуйста, выполните следующий список шагов, чтобы реализовать свой собственный шаблон проектирования Singleton в Java:

  • Добавьте приватное статическое поле в класс, в котором вы хотите сохранить экземпляр синглтона.
  • Чтобы получить соответствующий экземпляр синглтона, вы должны объявить общедоступный статический метод.
  • Теперь вам нужно выполнить «ленивую инициализацию» внутри статического метода. Это должно по существу создать новый объект при его первом вызове и поместить его в статическое поле. Статический метод всегда должен возвращать этот конкретный экземпляр при всех последующих вызовах.
  • Сделайте конструктор закрытым. Статический метод класса по-прежнему сможет вызывать конструктор, но не другие объекты.
  • Пожалуйста, просмотрите клиентский код и замените все прямые вызовы конструктора Singleton вызовами его статического метода создания.

В заключение

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

Шаблоны проектирования составляют одну из основных концепций, которую должен изучить любой начинающий разработчик программного обеспечения. Мир разработки программного обеспечения широк и охватывает все аспекты, начиная от клиентской части, серверной части, базы данных, сервера и многого другого. В таком сценарии необходимость часа состоит в том, чтобы организовать ваш подход к обучению. В upGrad вы можете пройти курсы по разработке программного обеспечения , которые помогут вам построить долгосрочную карьеру в области разработки программного обеспечения. Этот курс, предлагаемый в сотрудничестве с IIIT-B, преподается отраслевыми экспертами и дает вам возможность продвинуться по карьерной лестнице в выбранном вами направлении. Ознакомьтесь с подробностями курса и зарегистрируйтесь сегодня — курс начинается 30 сентября 2021 года!

Является ли шаблон проектирования Singleton единственным шаблоном проектирования, доступным в Java?

Нет, Java предлагает множество шаблонов проектирования для программистов, и Синглтон — лишь один из них.

Какие типы шаблонов проектирования доступны в Java?

Java предоставляет разработчикам в целом три типа шаблонов проектирования;
1. Шаблоны креативного дизайна
2. Шаблоны структурного проектирования
3. Шаблоны поведенческого дизайна

Каковы преимущества использования шаблонов проектирования в Java?

Использование шаблонов проектирования в вашем коде дает следующие несомненные преимущества:
1. Улучшенная читаемость
2. Улучшить модульность
3. Легкая доступность
4. Простота проектирования и создания программ.