原型模式

UML图:

原型模式:

复制原对象,克隆出与原型对象一模一样的对象;

原型接口:

public interface Product extends Cloneable{
    Object cloneProduct();
}

具体原型:

public class ProductA implements Product {

    @Override
    public Object cloneProduct() {
        try {
            return clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return null;
    }
}

使用者:

public class Manager {

    private Product product;
    public Manager(Product product) {
        this.product = product;
    }

    public Product create(){
        return (Product) product.cloneProduct();
    }

    public static void main(String[] args){
        ProductA productA = new ProductA();
        Manager manager = new Manager(productA);
        Product clonedProductA = manager.create();
        System.out.println(productA == clonedProductA);
    }
}