設計模式之Prototype(c )

2021-06-19 13:11:48 字數 1481 閱讀 3564

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...