您的位置:首页 > 编程语言 > C语言/C++

设计模式---------------------原型模式

2015-06-25 12:42 543 查看
原型模式的优点:

从一个对象在创建另外一个可定制的对象,而无需知道创建的任何细节,并且能提高创建性能(copy技术)。

下面先来看原型模式的结构图:



具体代码如下:

// Strategy.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"

#include <iostream>
#include <vector>
#include <string>
using namespace std;

class Prototype{
private:
string m_strName;
public:
Prototype(string strName){
m_strName = strName;
}

Prototype(){ m_strName = ""; }
void show(){
cout << m_strName << endl;
}

virtual Prototype* Clone() = 0;
};

class ConcreatePrototype1 :public Prototype{
public:
ConcreatePrototype1(string strName) :Prototype(strName){}

ConcreatePrototype1(){}

virtual Prototype*Clone(){
ConcreatePrototype1*p = new ConcreatePrototype1();
*p = *this;
return p;
}
};

class ConcreatePrototype2 :public Prototype{
public:
ConcreatePrototype2(string strName) :Prototype(strName){}

ConcreatePrototype2(){}

virtual Prototype*Clone(){
ConcreatePrototype2*p = new ConcreatePrototype2();
*p = *this;
return p;
}
};

int main(){

ConcreatePrototype1 *test = new ConcreatePrototype1("小王");
ConcreatePrototype2*test2 = (ConcreatePrototype2*)test->Clone();

test->show();
test2->show();

getchar();
getchar();

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ 设计模式