Prototype模式允許一個物件再建立另外一個可定製的物件,根本無需知道任何如何建立的細節,工作原理是:通過將一個原型物件傳給那個要發動建立的物件,這個要發動建立的物件通過請求原型物件拷貝它們自己來實施建立。 如何使用?
因為Java中的提供clone()方法來實現物件的克隆,所以Prototype模式實現一下子變得很簡單.
AbstractSpoon:勺子抽象類
SoupSpoon:AbstractSpoon的實現類,湯勺
複製程式碼
AbstractSpoon類程式碼
@Data
public abstract class AbstractSpoon implements Cloneable{
String spoonName;
@Override
protected Object clone() {
try {
return super.clone();
} catch (CloneNotSupportedException e) {
System.err.println("AbstractSpoon is not cloneable.");
}
return null;
}
}
複製程式碼
SoupSpoon程式碼
public class SoupSpoon extends AbstractSpoon {
public SoupSpoon(){
setSpoonName("Soup Spoon");
}
}
複製程式碼
呼叫Prototype模式很簡單:
AbstractSpoon spoon = new SoupSpoon();
AbstractSpoon spoonClone = spoon.clone();
複製程式碼