原型模式之深复制和浅复制
来源:互联网 发布:linux系统制作iso镜像 编辑:程序博客网 时间:2024/06/07 02:05
看了原型模式,觉着和C#中讲的值类型和引用类型很相似,不妨先来复习一下值类型和引用类型吧
值类型:
<span style="font-size:18px;"> Public struct Person { private string _name; public string name { get{return _name;} set{_name=value;} } --------------//声明年龄 ---------------//声明性别 } Static void Main() { Person p1=new Person(); p1.Age=20; p1.Gender='男'; Person p2=new Person(); p2=p1; p2.Age=30; p2.Gender='女'; } 结果 p1: 20 男 p2: 30 女</span>
引用类型:
<span style="font-size:18px;">Public class Person { private string _name; public string name { get{return _name;} set{_name=value;} } --------------//声明年龄 ---------------//声明性别 }主函数相同</span>
结果 p1: 30女
p2:30女
值类型的值存在栈上,引用类型栈上存的是地址,值在堆上。枚举、结构、int 、decimal等类型是值类型的是传递拷贝。对象(引用类型)则是传递引用。类 、string、数组是引用类型。
言归正传,深复制和浅复制是同样的道理
浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象。
深复制:把引用对象的变量指向复制过的新对象而不是原有的被引用的对象。
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
MemberwiseClonce()方法:如果字段是值类型的,则对该字段执行逐位复制,如果字段是引用类型,则复制引用但不复制引用的对象;因此,原始对象及其副本引用同一个对象。
浅复制UML图解:
1 0
- 原型模式之深复制和浅复制
- 原型模式浅复制和深复制
- 原型模式——浅复制和深复制
- 如何理解原型模式中的深复制和浅复制
- 原型模式(浅复制和深复制)
- 设计模式之原型学习 java中的浅复制和深复制
- 原型模式深复制浅复制
- java设计模式-原型模式(浅复制,深复制)
- 设计模式学习--原型模式(深复制与浅复制)
- GOF 23 设计模式之 原型模式(prototype) 深复制与浅复制举例
- 原型模式之深浅复制
- 原型模式——浅复制VS深复制
- 再会原型模式——深复制VS浅复制
- 原型模式、对象克隆(深复制、浅复制)
- 原型模式--自我复制(结合Java浅复制与深复制)
- Java 之浅复制和深复制
- 原型模式深浅复制
- Rhyme/Java 设计模式之原型模式prototype通过clone方法和反序列化实现深复制
- hdu 3790 最短路径问题(距离和费用)
- 理解C语言——从小菜到大神的晋级之路(4)——数据类型、运算符和表达式
- ss使用教程-Mac OS X
- 随机洗牌算法
- 提高iOS开发效率的第三方框架等--不断更新中。。。
- 原型模式之深复制和浅复制
- struts2 中 action 属性自动注入的发现
- 39节 问题求解——求素数 课后
- 四六级作文模板——(有个笔记好看)
- Android 超高仿微信图片选择器 图片该这么加载
- kettle组件学习
- poj 2096 Collecting Bugs 期望dp 简单题
- POJ1125 dijkstra求任意两点距离
- [NOIP2006]开心的金明 T2