原型模式 建立型模式

2021-10-05 11:02:06 字數 1839 閱讀 4474

文章首發個人部落格:

如果我們有乙個類(sheep),它裡面有兩個屬性,名稱(name),年齡(age)。現在我們有乙個它的例項(s1),我們需要按照這個例項的屬性再去建立兩個物件。

1、sheep

@data

public

class

sheep

}

2、main

public

class

main

}

原型模式: 用原型例項指定建立物件的種類,並且通過拷貝這些原型,建立新的物件。

也就是我們使用clone方法進行物件的建立,我們對上面的sheep類新增clone方法。

1、改造後的sheep類

import lombok.data;

import lombok.tostring;

@data

@tostring

public

class

sheep

implements

cloneable

@override

protected sheep clone()

catch

(exception e)

return

(sheep)obj;

}}

2、main 測試

public

class

main

}

1、在上面的 sheep 類裡面新增乙個 屬性

private sheep friend;
2、測試

public

class

main

// 列印結果如下

小道仙 小道仙 小道仙

王哈哈 王哈哈 王哈哈

}

淺拷貝:在拷貝物件的時候對引用型別,沒有從新建立乙個物件,而是指向之前物件的引用。

深拷貝:解決淺拷貝存在的問題,我們去為引用型別建立乙個新的物件。

方式一:使用多次clone

@override

protected sheep clone()

}catch

(exception e)

return obj;

}

方式二:使用序列化和反序列化 (注:需要實現序列化介面 implements serializable)

@override

protected sheep clone()

catch

(exception e)

finally

catch

(exception e)

}}

兩種方法的測試**如下,結果也都一樣

建立型模式 原型模式

使用原型例項指定建立物件的種類,並且通過轉殖這些原型建立新的物件 原理是將乙個原型物件傳給要發動建立的物件,該物件通過請求原型物件轉殖自己來建立過程 轉殖方法 public prototype clone jdk中為我們提供了轉殖的方法clone 從object繼承下來,乙個物件要實現轉殖,需要實現...

建立型模式 原型模式

原型 prototype 模式主要用於建立物件的轉殖,通常其最簡單的形式就是採用自定 clone 函式並 傳入物件引數以返回此物件的乙個副本,這在 python 實作上可使用內定 copy.cop y 或 copy.deepcopy 函式來達到此目的。當已有乙個物件但對此物件的某些部分會被變更卻又想...

建立型模式 原型模式 prototype

用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。main.cc include include software computer.h design pattern prototype for example,the company to employees with compute...