建立模式 02-Prototype(原型)

zx20110729發表於2018-10-18

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();
複製程式碼

相關文章