TGViewer
Java | Вопросы собесов Java | Вопросы собесов @easy_java_ru · 11.3K subscribers
Post #111 5.54K
Чем singleton отличается от prototype ?
Спросят с вероятностью 25%

Singleton и Prototype относятся к категории порождающих шаблонов проектирования. Они решают разные проблемы и имеют разные применения в разработке программного обеспечения.

Singleton предназначен для обеспечения того, чтобы класс имел только один экземпляр во всем приложении и предоставлял глобальную точку доступа к этому экземпляру. Это достигается за счет того, что конструктор класса делается приватным, а создание экземпляра класса осуществляется через статический метод, который проверяет, существует ли уже экземпляр этого класса, и если нет, то создает его. Часто используется для управления ресурсами, такими как соединение с базой данных, где необходимо использовать только одно соединение на всё приложение.
public class Singleton {
private static Singleton instance;

private Singleton() {}

public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}


Prototype, напротив, используется для создания новых объектов, копированием существующего объекта-прототипа. Это полезно, когда создание экземпляра класса является ресурсоемким процессом или когда требуется создать копию объекта, сохраняя его состояние. Это часто достигается с помощью реализации интерфейса Cloneable и переопределения метода clone().
public class Prototype implements Cloneable {
private String field;

public Prototype(String field) {
this.field = field;
}

@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}


Основные отличия:

✅ Цель использования: Singleton гарантирует, что класс имеет только один экземпляр, в то время как Prototype предназначен для создания новых объектов путем копирования существующего объекта.
✅ Метод создания объекта: В Singleton объект создается через статический метод, контролирующий его экземпляр, в Prototype новый объект создается копированием (клонированием) существующего.
✅ Применение: Singleton часто используется для управления доступом к ресурсам, которые должны быть единственными в приложении, например, соединение с базой данных. Prototype используется, когда нужно избежать затрат на создание объекта с нуля, вместо этого копируя существующий объект.

Основное отличие между Singleton и Prototype заключается в их цели и способе создания объектов: Singleton обеспечивает единственность экземпляра класса, в то время как Prototype фокусируется на создании новых объектов путем копирования.

👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1715 вопроса на Java разработчика. Ставь 👍 если нравится контент

🔐 База собесов | 🔐 База тестовых
  • 👍 20
  • ❤ 2
  • 🔥 1
More from @easy_java_ru
  1. Oct 12, 2026🤔 Жизненный цикл сервлетов? 1. Загрузка и инициализация (init); 2. Обработка запроса (ser…
  2. Oct 12, 2026🤔 Как остановить поток? Остановить поток в Java можно несколькими способами, но важно пом…
  3. Oct 11, 2026🤔 Какой класс позволяет читать данные из входного байтового потока в формате примитивных…
  4. Oct 11, 2026🤔 Чем отличается where от having ? WHERE и HAVING используются для фильтрации записей, но…
  5. Oct 10, 2026🤔 На основании какой структуры данных реализован ArrayList? ArrayList реализован на базе…
  6. Oct 9, 2026🤔 Что такое «HTML»? HTML (HyperText Markup Language) — это язык разметки, используемый дл…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →