JAVA-設計模式-原型模式
定義:用原型實列指定創建對象的種類,並通過拷貝這些原型創建新的對象,簡單點就叫“克隆”。
實現淺拷貝:
class Prototype implements Cloneable{
public Prototype clone(){
tyr{
return (Prototype)super.clone();
}catch(){}
}
}
class ConcreatePrototype extends Prototype{
pubic void show(){
System.out.println("原型模式");
}
}
public class Client{
public static void main(String args[]){
ConcreatePrototype cp = new ConcreatePrototype();
for(int i=0;i<10;i++){
ConcreatePrototype clonecp = (ConcreatePrototype)cp.clone();
clonecp.show();
}
}
}
注意事項:
1、實現Cloneable接口重寫Object類重的clone方法
2、賦值對象時不會調用類的構造方法
3、深拷貝和淺拷貝,Object類的clone方法只會拷貝對象中的基本數據類型,對於數字/容器對象/引用對象等都不會拷貝。如果要實現深拷貝,必須將原型模式中的數組等另行拷貝。【此處為重點】
優點:
比直接new性能要好,應為Object類的clone方法是一個本地方法,它直接操作內存重的二進制流,特別是賦值大對象時,性能差別比較明顯。
缺點:
易讀性比較差,建議綜合考量。
閱讀更多 小哥哥愛學習 的文章