Prototype原型模式

2022-09-14 11:33:12 字數 929 閱讀 3751

原型模式就是以乙個物件作為原型構建另乙個物件,也就是我們說的轉殖。

轉殖做法是什麼呢?

物件實現轉殖介面clonable介面,將訪問方法clone重寫,訪問許可權變大。

預設的轉殖是淺拷貝,指的是外層物件是new的,但是物件的屬性都是通過值copy給的的,也就會出現乙個問題,引用資料型別用的都是同乙個物件

深拷貝的做法:

重寫clone方法,針對每乙個引用資料型別new 乙個物件,只是將基本資料型別的值放入進去該物件

或者可以利用序列化做媒介完成,深拷貝。

**:

package

com.zhen.build_template.prototype;

import j**a.io.*;

/***

@author

zhen

* @date 2019/5/28 21:48 */

public

class prototype implements

cloneable, serializable

public object deepclone() throws

ioexception, classnotfoundexception

public object deepclone1() throws

clonenotsupportedexception

}class c implements

serializable

}package

com.zhen.build_template.prototype;

/***

@author

zhen

* @date 2019/5/28 21:50 */

public

class

testclone

}

view code

原型模式(ProtoType)

1.目的 當需要從乙個物件copy出另外乙個物件時,可以使用原型模式,本質上是呼叫的copy建構函式 與copy建構函式的區別,可能就是不需要顯示的生成物件,而是通過函式呼叫 2.prototype.h ifndef prototype h define prototype h include in...

Prototype 原型模式

prototype 原型模式 所謂原型模式,就是可以根據乙個原型,快速建立出其拷貝。如 int a 1 int b new int a a cout a endl cout b endl 輸出結果 2 1 上面就使用了原型模式。根據原型a,快速建立出了a的拷貝b。同時,b儲存了a當時的狀態。當a之後...

原型模式 Prototype

用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。原型模式是一種建立型設計模式,它允許乙個物件再建立另外乙個可定製的物件,根本無需知道任何如何建立的細節,工作原理是通過將乙個原型物件傳給那個要發動建立的物件,這個要發動的物件通過請求原型物件拷貝它們自己來實施建立。現實很殘酷,都第9章了...