設計模式(五) 原型模式

2022-01-15 23:44:10 字數 1023 閱讀 7250

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

通俗來說,原型模式就是從乙個物件,通過複製的手段去建立另外乙個物件,而且不需要知道任何建立的細節。

思考:這麼做有什麼好處?

角色說明

抽象原型類。宣告乙個轉殖自身的介面(抽象方法)

具體原型類。實現乙個轉殖自身的方法

讓乙個原型轉殖自身從而建立乙個新的物件

下面我們來看乙個建立顏色color物件的示例:

建立原型類color(本示例省略了抽象原型類,改用icloneable介面代替)

class color : icloneable

public object clone()

,,");

return this.memberwiseclone() as color;}}

建立原型管理器colormanager

class colormanager

set }}

客戶端向原型管理器註冊,獲取color物件,以及動態註冊原型

static void main(string args)

輸出結果

拷貝乙個物件時,僅拷貝物件的引用,拷貝的物件和源物件引用同乙份實體。也就是說,改變其中乙個物件會影響到另乙個物件的狀態。

拷貝乙個物件時,不僅拷貝物件的引用,還將物件引用的值一同拷貝。這樣拷貝的物件和源物件相互獨立,其中乙個改變不會影響另外乙個物件。

當乙個系統應該獨立於它的產品建立、構成和表示時,要使用prototype模式;以及

設計模式五 原型模式

建立型模式最後一種 原型模式 一般用於框架 或者稱為轉殖模式 使用場景 當物件建立比較繁瑣 耗時 或者有訪問許可權的時候 可以使用原型模式 以某個物件為原型 複製出新的物件 不同於new 實現 實現cloneable 介面和重寫clone方法 記憶體賦值 public class sheep imp...

設計模式學習 五 原型模式

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

PHP設計模式系列(五) 原型模式

原型物件,用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。原型模式就是clone就是記憶體拷貝,比new的好處是建立物件快速,適合大物件建立。原型模式與工廠模式作用類似,都是用來建立物件 與工廠模式的實現不同,原型模式是先建立好乙個原型物件,然後通過clone原型物件來建立新的物件,...