原型模式实例之邮件复制(浅克隆):
邮件复制(浅克隆)类图:
在原型模式结构中需要提供一个抽象原型类,java类都继承了java.lang.Object,也提供了clone()方法,但是在C++中没有这些特性,所以需要自己去实现一个抽象Object类和clone方法。又因为父类和子类大小不一样,使用clone的对象会有不同,为了适应C++,所以翻译过来的源码有所改动。
抽象原型类 :
//抽象原型类
class Object{
public:
virtual Object* clone() = 0;
};
附件类 :
//附件类
class Attachment{
public:
void download(){
cout << "下载附件" << endl;
}
};
具体类Email: