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模式允許乙個物件再建立另外乙個可定製的物件,根本無需知道任何如何建立的細節,工作原理是 通過將乙個原型物件傳給那個要發動建立的物件,這個要發動...