JAVA-設計模式-原型模式3(好難懂,必須懂)

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方法是一個本地方法,它直接操作內存重的二進制流,特別是賦值大對象時,性能差別比較明顯。

缺點:

易讀性比較差,建議綜合考量。

JAVA-設計模式-原型模式3(好難懂,必須懂)


分享到:


相關文章: