在学习设计模式中的原型模式中遇到了浅复制和深复制这两个陌生的面孔。它们到底是什么意思?浅和深到底是什么意思?还是需要来仔细研究一下的
首先,了解一下原型模式:用原型实例制定创建对象的种类,并且通过拷贝这些原型创建新的对象。通俗的将其实就是复制。
若收到复制,并不陌生,但是怎么用,我们又该如何用才能达到更加灵活的复制呢?
1.首先要...
分类:
其他好文 时间:
2014-07-22 23:00:14
阅读次数:
280
原型模式 用原型指定创建对象的类型,并且通过复制这个原型来创建新的对象。
其实这个模式理解起来不难,Prototype是一个原型,继承他的子类可以通过实现Clone()方法复制这个对象。但是做的时候会涉及到一些深复制,浅复制的知识。明天软考时间不够,我以后再整理。
分类:
其他好文 时间:
2014-05-24 09:52:09
阅读次数:
229
原文:深度解析javascript中的浅复制和深复制
在谈javascript的浅复制和深复制之前,我们有必要在来讨论下js的数据类型。我们都知道有Number,Boolean,String,Null,Undefined,Object五种类型。而Object又包含Function,Array和Obj...
分类:
编程语言 时间:
2014-05-22 15:13:54
阅读次数:
334
浅复制:浅复制(浅拷贝,指针拷贝,shallow copy),源对象和副本对象是同一个对象,
源对象(副本对象)引用计数器 + 1, 相当于做一次retain操作。本质是:没有产生新的对象深复制:(深拷贝,内容拷贝,deep
copy),源对象和副本对象是不同的两个对象,源对象引用计数器不变...
分类:
其他好文 时间:
2014-05-21 05:09:36
阅读次数:
301
最近看书看到一种新的实现深复制对象的技术,使用Foundation的归档技术,下面是代码:NSData *data = [NSKeyedArchiver
archivedDataWithRootObject:dataArray];NSMutableArray *dataArray2 = [NSKey...
分类:
其他好文 时间:
2014-05-19 14:59:05
阅读次数:
186
读前小提示:对于深浅复制有一个清楚的了解,对于学习oc的朋友来说,至关重要。那么首先,我们要明白深浅复制是如何定义的呢。这里为了便于朋友们理解,定义如下。
浅 复制:在复制操作时,对于被复制的对象的每一层复制都是指针复制。深 复制:在复制操作时,对于被复制的对象至少有一层复制是对象复制。完全复制:在...
分类:
其他好文 时间:
2014-05-12 21:23:29
阅读次数:
415
把对象当参数传递给方法,在方法里改过对象后,影响到外面的对象
因为对象是引用传递过去的class Book { public $name; public function __construct($name) {
$this->name = (string)$n...
分类:
Web程序 时间:
2014-05-12 03:34:37
阅读次数:
386
本文将从以下几点浅谈原型模式:
概述
结构图
分类
浅复制:结构图
代码
复制图示
深复制:结构图
代码
复制图示
总结
概述:
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节。
复制过程,并不是做一个抽象类,去实例化它。而是只需通过实现一个含有Clone()方法的接口就可以去克隆,这就是.NET在System命名空间中提供的ICloneable接口 。...
分类:
其他好文 时间:
2014-05-05 21:27:41
阅读次数:
359
extend()函数是jQuery的基础函数之一,作用是扩展现有的对象说明:$.extend(true,
obj1, obj2)表示以obj2中的属性扩展对象obj1,第一个参数设为true表示深复制。
虽然obj1中原来没有"x"属性,但经过扩展后,obj1不但具有了"x"属性,而且对obj2中的...
分类:
Web程序 时间:
2014-05-04 11:57:04
阅读次数:
417