Prototype 原型模式

2021-08-15 07:51:10 字數 1032 閱讀 5397

prototype:原型模式

所謂原型模式,就是可以根據乙個原型,快速建立出其拷貝。

如:

int a = 1;

int* b = new int(a);

a++;

cout << a << endl;

cout << *b << endl;

輸出結果: 2

1 上面就使用了原型模式。根據原型a,快速建立出了a的拷貝b。同時,b儲存了a當時的狀態。當a之後進行了修改,根據b,就可以得知當時a的狀態。

原型模式的特點就是:①必須有乙個原型物件②物件可以自我複製。

其主要作用如下:

1.    需要建立的物件並非一開始就可以確定,而是需要在執行時確定。那麼,使用原型模式,只要令原型物件自我複製乙份即可

2.    需要儲存某個原型物件在某種狀態下的副本。如乙個原型物件建立後,進行了許多變化,其內部的引數已經經過了許多調整。此時希望儲存當前狀態的副本,那麼令原型物件自我複製乙份即可

3.    當處理多個物件時,每個物件可能有許多狀態,但這些物件間的差異非常小。那麼可以令原型物件自我複製多份,然後作少量調整即可

4.    有時候,建立類物件需要許多引數。若此時有乙個正在執行的原型,那麼,直接令該原型自我複製乙份,省去了建立過程。

以下示例**省略了建構函式與析構函式:

1.    原型

原型必須有乙個複製自身的函式clone

()。對於c++而言,這一點的實現借助於拷貝建構函式。其他語言平台依賴於自身特性。

class prototype

;class concreteprototype : public prototype

//複製自身

virtual concreteprototype * clone()

private:

int _counter;

};

2.    使用者呼叫

void main()

原型模式(ProtoType)

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

原型模式 Prototype

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

原型模式 prototype

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