Встречается на собеседованиях • сегодня
Где бы мог использовать Prototype
Prototype полезен, когда создание объекта дорого (например, требует сложных вычислений или обращения к БД), а нужно много похожих экземпляров.
**Пример:**
```java
class User implements Cloneable {
private String name;
private List permissions;
@Override
protected User clone() throws CloneNotSupportedException {
User cloned = (User) super.clone();
cloned.permissions = new ArrayList<>(this.permissions); // Глубокое копирование списка
return cloned;
}
}
// Использование
User adminTemplate = new User("Admin", Arrays.asList("read", "write", "delete"));
User newAdmin = adminTemplate.clone();
newAdmin.setName("CustomAdmin");
```
**Когда применять:**
- Клонирование существующих объектов дешевле, чем создание через `new`
- Объекты имеют сложное состояние (например, граф зависимостей)
- Хотим избежать повторной инициализации (например, загрузки конфигурации)
⚠️ Важно: для сложных объектов реализуйте **глубокое копирование**, чтобы избежать неожиданного разделения состояния.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы