设计模式之原型模式
来源:互联网 发布:紫色水离子淘宝店名字 编辑:程序博客网 时间:2024/06/05 04:09
原型模式(Prototype Pattern)属于创建型模式,用于拷贝一个已经生成的实例。
下面是原型模式的C++实现,代码可到本人github网页下载:设计模式例子
/* * Example of 'Prototype' design pattern. * Copyright (C) 2016 Leo Wang * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */#include <iostream>using namespace std;class CPrototype{public: virtual CPrototype* clone()=0; virtual void SetValue(int v)=0; virtual int GetValue()=0;};class CConcretePrototype :public CPrototype{public: int value;public: CPrototype* clone() { return new CConcretePrototype(*this); }; void SetValue(int v) { value=v; }; int GetValue() { return value; };public: CConcretePrototype(int v):value(v){};};void main(){CPrototype* cp_protypeobj1=new CConcretePrototype(1);CPrototype* cp_protypeobj2=cp_protypeobj1->clone();cp_protypeobj1->SetValue(10);int i=cp_protypeobj2->GetValue();cout<<"Value in object1 is: "<<cp_protypeobj1->GetValue()<<endl;cout<<"Value in object2 is: "<<cp_protypeobj2->GetValue()<<endl;};
1 0
- 设计模式之原型
- 设计模式之原型
- 设计模式 之 原型
- 设计模式之原型
- 设计模式之原型
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之-原型模式
- 设计模式之 原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之--原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 设计模式之原型模式
- 第四章 复合类型(3)
- styles.xml文件中@符号及命名空间android:的使用
- css +号选择器
- nginx普通哈希表
- Android 网络框架_常用的网络框架
- 设计模式之原型模式
- 在聊蜂鸣器
- 埃及分数-迭代加深
- 运算放大器带宽的讨论
- NOIP2015信息传递
- 原来Chrome自带的开发者工具还能这么用!
- 我的C/C++库理解之memchr
- bzoj 1057: [ZJOI2007]棋盘制作 (dp+悬线法)
- App研发录