原型設計模式

2021-05-21 19:14:21 字數 825 閱讀 1463

一、應用場景

在乙個特定的場景中經常需要出現多個相同但狀態各異的物件,通常的解決方法是通過new建立這些物件之後分別去設定這些物件的狀態。原型設計模式提供了更快捷、更有效的解決方法。

二、意圖

通過複製(轉殖、拷貝)乙個指定型別的物件來建立更多同型別的物件。這個指定的物件可被稱為「原型」物件,也就是通過複製原型物件來得到更多同型別的物件。

三、說明

原型設計模式的拷貝可以被分為深拷貝與淺拷貝。

深拷貝是指複製後的物件同原型物件不共享任何資料。如物件a內的乙個引用字段,它同複製物件b內的相同引用欄位不引用相同的物件,而是為物件b建立乙個新的引用物件。

淺拷貝不同於深拷貝,它的原型內的引用欄位同複製物件內的引用字段,引用的是同乙個物件。

c#中的拷貝可以使用object類的成員memberwiseclone進行淺拷貝,可以使用binaryformatter.serialized成員序列化技術來進行深度拷貝。

c++中的拷貝直接使用類中的複製建構函式進行拷貝。

四、例子

public inte***ce car

string carname

car clone();

}public class newcar:car

private string m_carname;

public string carname

getreturn m_carname;

setm_carname=value;

public

override

car clone()

拷貝**}}

void

main()

python 設計模式 原型模式 原型設計模式

原型設計模式有助於隱藏該類建立例項的複雜性,在物件的概念將與從頭建立的新物件的概念不同。如果需要,新複製的物件可能會在屬性中進行一些更改。這種方法節省了開發產品的時間和資源。如何實現原型模式?現在讓我們看看如何實現原型模式。實現如下 import copy class prototype type ...

設計模式 原型設計模式

建立型的模式,最後一種原型設計模式。是一種使用起來簡單,可以配合單例模式或是工廠設計模式使用的。先看一下,原型設計模式是怎麼回事兒吧。如果想使用原型設計模式。必須滿足乙個條件,首先實現cloneable介面,然後重寫clone方法。這樣就算是完成了,然後就開始測試了 建立完物件以後給phone乙個當...

設計模式 原型

一 功能 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。二 示例 namespace designpattern prototype class concreteprototype1 class concreteprototype1 public prototype class c...