原型模式 Prototype Pattern

2022-07-18 02:54:15 字數 2036 閱讀 1410

一、介紹

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

二、uml圖

三、示例

view code

public

class

dog

//////

行為

/// public

string action

}//////

淺拷貝

/// public

class

shallowclone : icloneable

public

object

clone()

public

string tag

//////

實體屬性

/// public dog dogmodel

#endregion

}

//////

深拷貝

/// public

class

deepclone : icloneable

public

object

clone()

,this

.tag);

}public

string tag

//////

實體屬性

/// public dog dogmodel

#endregion

}

//program

view code

static

void main(string

args)

, "淺拷貝"

);

shallowclone lowclone2 =(shallowclone)lowclone.clone();

lowclone2.tag = "

淺拷貝轉殖";

lowclone2.dogmodel.name = "小狗"

; console.writeline(lowclone.tag+"

:"+ lowclone.dogmodel.name +lowclone.dogmodel.action);

console.writeline(lowclone2.tag+"

:" + lowclone2.dogmodel.name +lowclone2.dogmodel.action);

deepclone deepclone = new deepclone(new dog , "

深拷貝"

); deepclone deepclone2 =(deepclone)deepclone.clone();

deepclone2.tag = "

深拷貝轉殖";

deepclone2.dogmodel.name = "小狗"

; console.writeline(deepclone.tag + "

:" + deepclone.dogmodel.name +deepclone.dogmodel.action);

console.writeline(deepclone2.tag + "

:" + deepclone2.dogmodel.name +deepclone2.dogmodel.action);

console.read();

}

//執行結果

建立型模式 原型模式

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

建立型模式 原型模式

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

原型模式 建立型模式

文章首發個人部落格 如果我們有乙個類 sheep 它裡面有兩個屬性,名稱 name 年齡 age 現在我們有乙個它的例項 s1 我們需要按照這個例項的屬性再去建立兩個物件。1 sheep data public class sheep 2 main public class main 原型模式 用原...