Java 设计模式 Prototype 原型 模式
Prototype 模式用于不能根据类来来生产实例时,而根据现有的实例来生成新的实例。
- 原型:负责定义用于复制现有实例来生成新实例的方法。
- 具体的原型:负责实现复制现有实例并生成新实例的方法。
- 使用者:负责使用复制实例方法生成的实例。
public interface Product extends Cloneable {
public abstract void use();
public abstract Product createClone();
}
import java.util.HashMap;
import java.util.Map;
public class Manager {
private Map map = new HashMap<>();
public void register(String name, Product product) {
map.put(name, product);
}
public Product create(String productName) {
Product product = map.get(productName);
return product.createClone();
}
}
public class Car implements Product {
private String str;
public Car(String str) {
this.str = str;
}
@Override
public void use() {
System.out.println(str);
}
@Override
public Product createClone() {
Product product = null;
try {
product = (Product) clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return product;
}
}
public class Test {
public static void main(String[] args) {
Manager manager = new Manager();
Car car = new Car("福田");
manager.register("福田", car);
Product product = manager.create("福田");
product.use();
}
}



