Укажите тип объектов для создания с использованием прототипного экземпляра и создайте новые объекты, скопировав этот прототип.
- Прототип: объявляет интерфейс для клонирования самого себя
- Конкретный прототип: реализует операцию для самого клонирования
- Клиент: создает новый объект, запрашивая прототип для клонирования самого себя
public class Main { public static void main(String[] args) { ConcretePrototype1 p1 = new ConcretePrototype1("I"); ConcretePrototype1 c1 = (ConcretePrototype1) p1.clone(); System.out.println("Cloned: " + c1.getId()); ConcretePrototype2 p2 = new ConcretePrototype2("II"); ConcretePrototype2 c2 = (ConcretePrototype2) p2.clone(); System.out.println("Cloned: " + c2.getId()); } } public abstract class Prototype { private String id; public Prototype(String id) { this.id = id; } public String getId() { return id; } public abstract Prototype clone(); } public class ConcretePrototype1 extends Prototype { public ConcretePrototype1(String id) { super(id); } @Override public Prototype clone() { return new ConcretePrototype1(getId()); } } public class ConcretePrototype2 extends Prototype { public ConcretePrototype2(String id) { super(id); } @Override public Prototype clone() { return new ConcretePrototype2(getId()) ; } }
Cloned: I Cloned: II
eidherjulian61/дизайн-шаблоны
Основные шаблоны Проектирования
ид ・ 27 сентября ・ 1 минута чтения
Оригинал: “https://dev.to/eidher/prototype-pattern-5cg0”