定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
举例:学校要制造学生档案,同一个班的同学,大部分信息是相同的,可以先制作一份,填好相同信息,然后以其为原型,复制多份,再填写同学们不同的信息;这要比一份一份的填写,简便很多
类图
注:这里为了约束子类,将其抽象为clone函数;若无子类,实现拷贝构造即可。
客户端
#include "StudentInfo.hpp"
int main(int argc, char *agrv[])
{
StudentInfo zhangSan;
StudentInfo liSi;
StudentInfo wangWu;
// 制作原型
zhangSan.setGrade("Grade 1");
zhangSan.setGrade("Li Cun Feng");
// 复制原型
zhangSan.clone(&liSi);
zhangSan.clone(&wangWu);
// 填写差异信息
zhangSan.setName("Zhang San");
liSi.setName("Li Si");
wangWu.setName("Wang Wu");
// 输出信息
zhangSan.show();
liSi.show();
wangWu.show();
getchar();
return 0;
}
运行结果