Рубрики
Без рубрики

Шаблон прототипа

Укажите тип объектов для создания с использованием прототипа экземпляра и создавайте новые объекты путем копирования… Помечен тегами creational, pattern, шаблоны проектирования, java.

Укажите тип объектов для создания с использованием прототипного экземпляра и создайте новые объекты, скопировав этот прототип.

  • Прототип: объявляет интерфейс для клонирования самого себя
  • Конкретный прототип: реализует операцию для самого клонирования
  • Клиент: создает новый объект, запрашивая прототип для клонирования самого себя
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”