原型模式 - Prototype

定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
举例:学校要制造学生档案,同一个班的同学,大部分信息是相同的,可以先制作一份,填好相同信息,然后以其为原型,复制多份,再填写同学们不同的信息;这要比一份一份的填写,简便很多

类图
注:这里为了约束子类,将其抽象为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;
}

运行结果
运行结果

源码地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值