设计模式领悟之 原型设计模式


1.原型模式用处:

·用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

 ps:当我们需要创建大量相同对象的时候,就可以用原型模式大批量复制对象。和现实生活中

的复印机相似,通过一个原型(模板)批量复制相同的对象;

2.深复制与潜复制的区别:

       复制需要用到MemberwiseClone()方法;

1,浅复制:如果字段是值类型的,则对该字段进行逐位复制,如果字段是引用类型,则复制引用但不复制引用的对象;因此原始对象和其副本 引用同一对象;

2,深复制;
    把引用对象的变量指向复制过来的新对象,而不是原有的被引用的对象;

ps:同是复制对象,深复制在复制引用对象时会为引用生成新的一个对象副本不影响原对象。而浅复制直接复制引用;

3.深复制的实现

MemberwiseClone()方法 把引用对象的值复制给引用变量;
ps:若parper类对象是在Print类中引用的对象;
分两步 1,在parper类中增加一个Clone方法;
2, 在Print类中引用的地方调用paper对象的Clone方法
代码
Paper类:
public Object Clone()
{
return (Object)this.MemberwiseClone();
}

Print类:
this.paper = (Paper)paper.Clone();






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值