Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Espacio académico:
Modelos de programación
Docente a cargo:
Jorge Hernando Malaver Parra
En algunos casos, el coste de crear un objeto nuevo desde 0 es muy elevado, y más aún si
luego hay que establecer una gran colección de atributos. En por esto que en ocasiones es
más conveniente clonar un objeto predeterminado que actúe de prototipo y modificar los
valores necesarios para que se ajuste a su nuevo propósito. El patrón se aplica cuando:
La solución consistirá en definir una interfaz que expone el método necesario para realizar la
clonación del objeto. Las clases que pueden ser clonadas implementarán esta interfaz,
mientras que las clases que deseen clonar deberán utilizar el método definido en la interfaz.
Para iniciar el planteamiento de la solución, partimos del hecho que se hace necesario definir
la interfaz que nos propone el propio método para aplicar el método necesario para la
posterior clonación de los objetos o en su defecto los “perros” (en nuestro caso), para ello,
creamos la clase interfaz (no confundir con la vista del programa) que llamamos
Perros_Prototype y a partir de esta la creación del método clonar.
Partiendo de la interfaz creada implementamos dicha interfaz en cada una de las clases
específicas que representaran la creación de los perros o específicamente, de las razas de
perros (Husky, Pastor Alemán, Cocker Spaniel) a las cuales tomaremos de ejemplo para
realizar la implementación para la clonación de dichos perros.
Para ello creamos clases separadas que representen de manera individual a la raza en
específico con la debida implementación de la interfaz (Perros_Prototype), además se
generan los atributos propios de cada raza para su diferenciación.
Implementación interfaz
Esta misma acción se lleva a cabo con las clases particulares de las dos razas de perros
restantes.
Una vez definidas las características de cada clase (raza de perro) se procede entonces a hacer
uso del método clonar generado en la interfaz, que en nuestro caso utilizamos el predefinido
por el IDE JAVA Netbeans, para hacer del mismo un método propio de la clase, de la
siguiente manera:
Al ser un método implementado desde la interfaz, tan solo realizamos una sobre
escritura del mismo para su aplicación específica en la clase de cada raza de perro:
o Una vez creados, se procede a realizar la referencia del perro original para clonarlo
en una nueva instancia de la misma raza del perro.
o Con estos nuevos objetos clonados ya obtenemos el clon del objeto original (perro
original), sus atributos o características ahora pueden ser modificables en la
clonación, de ahí que sea un patrón de diseño usado para reducir la caracterización de
objetos y más cuando se comparten atributos dentro del mismo.
Seleccionando Husky:
Características iniciales
(originales) del perro
Al aplicar clonación, ya podemos evidenciar que toma los atributos y como parte del
intercambio de los mismos, el nuevo perro Husky cuenta con nuevas características.
Nuevas características
generadas para el clon
De esta manera se realiza entonces la clonación para cada raza, en donde por cada
clonación puede variar algún aspecto o algún atributo respecto al original.