用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。这种模式是实现一个原型接口,该接口用于创建当前对象的克隆,当直接创建对象的代价比较大时,则采用这种模式。
![](https://img.haomeiwen.com/i6536587/38f7c10fdaeb8338.png)
我们还是举工程方法模式 一篇中形状的例子。
abstract class Shape implements Cloneable {
public abstract void draw();
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
class Circle extends Shape {
@Override
public void draw() {
System.out.println("draw circle.");
}
}
public static void main(String[] args) {
Shape circle = new Circle();
try {
circle.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
感觉原型模式也没什么可说的,只是需要注意深拷贝和浅拷贝。
网友评论