prototype模型:
作用:用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件----轉殖(clone)物件。
prototype模型類圖如下:
形象說明:如果客戶想配鑰匙(concreteprototype),就可以拿著鑰匙去配鑰匙的店鋪,店鋪老闆會根據配的鑰匙原型,給你配(clone)鑰匙!
具體簡單的例項實現:
/*prototype.hxx*/
#ifndef _prototype_h_
#define _prototype_h_
class prototype
;class concreteprototype:public prototype
;#endif //~_prototype_h_
/*prototype.cxx*/
#include "prototype.hxx"
#include using namespace std;
prototype::prototype()
prototype::~prototype()
prototype* prototype::clone() const
//concreteprototype
concreteprototype::concreteprototype()
concreteprototype::~concreteprototype()
concreteprototype::concreteprototype(const concreteprototype& cp)
prototype* concreteprototype::clone() const
/*main.cxx*/
#include "prototype.hxx"
#include using namespace std;
int main(int argc, char* argv)
return 0;
}
執行結果:
liujl@liujl-thinkpad-edge-e431:~/mysource/design_model/prototype$ g++ -o main main.o prototype.o
liujl@liujl-thinkpad-edge-e431:~/mysource/design_model/prototype$ ./main
concreteprototype copy...
0xf11010||0xf11030
1、c++設計模式.pdf
2、常見設計模式的解析和實現(c++)之四-prototype模式
原型模式 prototype c 版本
這是大話設計模式中的原型模式的c 版本 prototype.cpp created on jul 21,2017 author clh01s 163.com 原型模式 include include string using namespace std class resume void setpe...
設計模式之禪之設計模式 門面模式
1 package com.yeepay.sxf.template18 2 3 寫信的業務類 4 隱藏在門面角色裡邊,不需要暴露太多5 author sxf6 7 8public inte ce iletterprocess view code 寫信的業務類的實現 1 package com.yee...
設計模式之禪之設計模式 橋梁模式
1 package com.yeepay.sxf.template24 2 3 實現化角色 4 相當於不同的業務邏輯,抽象出共有行為5 6 產品類7 author sxf8 9 10 public abstract class product view code 房子產品實現 1 package c...