Шаблоны проектирования предлагают устоявшиеся решения распространенных проблем в разработке программного обеспечения. Они представляют собой лучшие практики, которые развивались с течением времени. Это начало серии постов, которые я буду создавать по общим и популярным шаблонам дизайна, с которыми разработчики должны быть знакомы. Я собираюсь начать с моделей создания, которые включают в себя создание объектов. Они помогают снизить сложность и разделить классы стандартизированным образом.
В этом посте я расскажу о шаблоне одноэлементного дизайна.
Шаблон дизайна Singleton был первым шаблоном, которому меня учили в колледже. Его цель состоит в том, чтобы инициализировать только один экземпляр объекта и предоставить метод для его извлечения. Это делается путем создания конструктора частным с помощью общедоступного метода, который возвращает созданный экземпляр. Если вы попытаетесь инициализировать другой экземпляр, компилятор выдаст ошибку. Существуют различные способы реализации этого шаблона, и я приведу ниже пример, взятый из tutorialspoint.com .
public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return singleton;
}
}
Когда бы вы использовали шаблон одноэлементного дизайна?
- Создание объектов, которые требуют больших вычислительных затрат
- Создание регистраторов, используемых для отладки
- Классы, используемые для настройки параметров приложения
- Классы, которые содержат общие ресурсы или получают к ним доступ
Одноэлементный шаблон, однако, имеет некоторых недоброжелателей, которые считают, что это анти-шаблон. Многие считают, что он используется неправильно и что начинающие программисты используют его слишком часто. Форумы также утверждают, что создание контейнера, который содержит объект одного класса и обращается к нему, является гораздо лучшим решением в современных приложениях. Полезен ли этот шаблон проектирования для новых разработчиков, по-видимому, предстоит обсудить. Дайте мне знать, что вы думаете в комментариях ниже!
Источники
Бельдунг. (2019, 11 сентября). Введение в Шаблоны творческого проектирования. Бельдунг. https://www.baeldung.com/creational-design-patterns .
Java – Как использовать одноэлементный класс? Точка обучения. (н.д.). https://www.tutorialspoint.com/java/java_using_singleton.htm .
Оригинал: “https://dev.to/jryther/singleton-design-pattern-4o70”