Você está na página 1de 2

DeepCopy y ShallowCopy

DEEPCOPY Y SHALLOWCOPY
Wilson Javier Ortiz Morales
Cd. 20072020056
e-mail: Willymax.0@hotmail.com

clase, pero cmo podemos hacer para crear dos


objetos completamente iguales sin tener que crear
uno derivado del otro desde el principio?,
podemos hacer una copia exacta del objeto sin
pasar por alto algunos de los atributos ms
importantes o no relevantes del mismo?, si es
posible y la manera de hacerlo es conociendo la
definicin de shallowcopy y deepcopy.

ABSTRACT: Copying objects is really


important when we refer to an application, and for
making a copy, we have to take into a count the
type of the object that we want to copy and its
attributes, like this we can know the type of copy
that we have to use with the most important
information about the object. Ones of the ways to
make copy is the shallowcopy and the deepcopy,
each one usable in different ways, and their main
difference is how deep is the copy, I mean, how
much the copy looks like the original object. Next
to, well see the principal difference between both,
in which cases we can use them and how to
implement them in our software applications.

2 DEEPCOPY
2.1 DEFINICIN:
Deepcopy o copiado profundo, de su
traduccin al espaol, se refiere a un copiado
completo del objeto, prcticamente es crear un
nuevo objeto, del mismo tipo que el original, que
contiene los mismos atributos, con los mismos
valores que tienen el objeto original al momento de
hacer la copia.

RESUMEN: El copiado de objetos es


realmente importante cuando hablamos en
trminos de una aplicacin, y para hacer una copia
debemos tener en cuenta el tipo de objetos que
queremos copiar y los atributos de este para as
saber que tipo de copia debemos hacer, con
relacin a la informacin ms importante que tiene
el objeto. Unas de las maneras de copia son
shallowcopy y deepcopy, cada una til en ciertos
casos, y la principal diferencia es lo profundo de la
copia, que tanto la copia se parece al objeto
original. A continuacin veremos la principal
diferencia entre las dos, en que casos podramos
utilizarlas y de que manera implementarla en
nuestras aplicaciones.

La ventaja principal, y la ms importante al


usar este tipo de copiado, es que tendramos dos
objetos diferentes, cada uno con los mismo datos,
y por tanto dos referencias o punteros diferentes, y
al modificar alguno de los dos, el original o la
copia, no se modificar el otro objeto y se tendra
un poco mas de seguridad con respecto a nuestros
dos objetos.
La desventaja es al momento d la velocidad
de copiado, al tener que copiar todos y cada uno d
los atributos del objeto original, la copia se
demorara en efectuarse, y al crear un nuevo
objeto, se correra con ms gasto de memoria.

PALABRAS CLAVE: atributos, tipo de dato,


clase, objeto, instancia.

1 INTRODUCCIN

3 SHALLOWCOPY

Uno de los eventos ms importantes en la


programacin orientada a objetos es el manejo de
los objetos, el cmo dispongamos de ellos. Al
momento de crear un objeto le asignamos ciertos
valores a sus atributos que son nicos con
referencia a los dems objetos de una misma

3.1 DEFINICIN:

La traduccin de shallow a espaol quiere


decir poco profundo, y bsicamente es esto lo

DeepCopy y ShallowCopy

.
que significa hacer shallowcopy, y que solo se
copia la parte fsica del objetos, es decir, se copia
la referencia al objeto y, a diferencia del deepcopy,
no se toma en cuenta ningn atributo, excepto su
referencia, del objeto original. En general solo se
copian los punteros o referencias al objeto en vez
de copiar el objeto y crear referencias a la copia.
Entonces en realidad lo que se est haciendo es
creando dos referencias, la que tiene el objeto
original y la del punto de copia al mismo objeto.

5 REFERENCIAS
http://www.jguru.com/faq/view.jsp?EID=1291212
http://wiki.answers.com/Q/What_is_difference_bet
ween_Deep_copy_and_shallow_copy
http://www.physicsforums.com/showthread.php?t=
206972

Una desventaja del uso del shallowcopy es que,


como solo crea una nueva referencia de un mismo
objeto, si modificamos alguna de las dos, ya sea la
referencia original o la referencia de copia, se
modificar el objeto completamente, por lo tanto se
dira que se modifican ambas referencias.
Una ventaja es la velocidad de ejecucin de la
copia, ya que solo tiene que hacer copia de la
referencia del objeto y no del objeto completo, por
lo que no depende del tamao de la informacin
que tiene el objeto, adems, al copiar solo la
referencia, se ahorra memoria tanto al guardar
como al buscar.

4 SHALLOWCOPY vs DEEPCOPY
En realidad ambos mtodos de copiado son
muy eficaces al momento de realizar algn tipo de
copia, pero cada uno tiene diferentes casos de
uso. Shallowcopy se utiliza cuando solo cuando
necesitamos saber el estado del objeto original y si
queremos que los cambios se modifiquen al igual
que cuando se hace en el original. El deepcopy se
hace cuando necesitamos dos objetos del mismo
tipo con los mismos atributos, cuando el objeto
final esta creado y simplemente necesitamos una
copia de l, o cuando necesitemos una copia de
seguridad del mismo.
Una de las diferencias principales entre
shallowcopy y deepcopy, es la manera de cmo
estos ven los datos, en el primero, shallow, solo se
tiene en cuenta la referencia del objeto, es decir
solo se copia lo mas superficial del objeto sin
importarnos sus atributos directamente, en cambio,
con el deepcopy nos importa, adems de la
referencia, la estructura interna del objeto, que
atributos y que valores tienen en determinado
momento. Tambin una diferencia importante es la
cantidad de espacio que ocupan, siendo
shallowcopy la que menos ocupa y por ende la que
menor velocidad de creacin tiene.