Prototype
Prototype (Prototipo)
Estructura del Artículo:
1. Definición
El patrón de diseño Prototype (Prototipo), tiene como finalidad crear nuevos objetos duplicándolos, clonando una instancia creada previamente.
Este patrón especifica la clase de objetos a crear mediante la clonación de un prototipo que es una instancia ya creada. La clase de los objetos que servirán de prototipo deberáincluir en su interfaz la manera de solicitar una copia, que será desarrollada luego por las clases concretas de prototipos.
2. Propósito o Finalidad
Facilita la creación de otros objetos copia de otros objetos. Crea nuevos objetos
creándolos de una instancia ya existente.
3. Problema al que es Aplicable
Como los demás patrones creacionales, este patrón sustituirá para el cliente lapalabra
clave new por otra forma de crear objetos. En este caso específico la creación se hará
sobre objetos que son complicados de crear, que para evitar usar new serán clonados a
partir de una instancia ya existente. Afortunadamente crear objetos no crea ningún tipo
de reparo moral, porque este patrón de eso se trata: de clonar, de pasar el ADN de un
objeto a otro. Es decir cada instancia delobjeto se obtendrá a partir de un prototipo (sí,
de ahí el nombre del patrón).
4. Estructura de la Solución
5. Participantes
Prototipo
Declara una interfaz para clonarse.
Prototipo Concreto
Implementa una operación para clonarse.
Cliente
Crea un nuevo objeto pidiéndole a un prototipo que se clone.
6. Aplicabilidad
Un sistema debe ser capaz de crear objetos sin conocer su claseexacta, como son creados,
Las clases serán instanciadas sin ser conocidas por el sistema hasta el tiempo de ejecución.
Los siguientes métodos para la creación de una gran variedad de objetos son indeseables:
Las clases que inicializan la creación de objetos crean directamente los objetos. Esto hace que ellos sean conscientes y dependientes de un gran número de otras clases. Las clases queinicializan la creación de objetos crean los objetos es capaz de crear una gran variedad de objetos puede ser muy grande y difícil de mantener.
Las clases que inicializan la creación de objetos crean los objetos indirectamente a través de una clase abstracta factory. Para que un abstracta factory sea capaz de crear una gran variedad de objetos debe tener una gran variedad de clases factory concretasen una jerarquía semejante a las clases que deben ser instanciadas.
Los objetos diferentes que un sistema debe crear deben ser instancias de la misma clase que contienen diferentes estados de información o datos. Guía de construcción de software en Java con patrones de diseño.
7. Implementación
Todas las clases en Java heredan un método de la clase Object llamado clone.
Un método clone de unobjeto retorna una copia de ese objeto. Esto solamente se
hace para instancias de clases que dan permiso para ser clonadas. Una clase da
permiso para que su instancia sea clonada si, y solo si, ella implementa el
interface Cloneable. Si va a variar el número de prototipos se puede utilizar un
administrador de prototipos. Cómo implementar la operación clone de los
objetos prototipo es otraimportante característica de la implementación. Hay
dos estrategias básicas para implementar la operación clone:
I. Copia superficial significa que las variables de los objetos clonados
contienen los mismos valores que las variables del objeto original y que
todas las referencias al objeto son a los mismos objetos. En otras palabras, la
copia superficial copia solamente el objeto que seráclonado, no los objetos a
los que se refiere.
II. Copia profunda significa que las variables de los objetos clonados contienen los mismos valores que las variables del objeto original, excepto que estas variables que se refieren a objetos realizan copias de los objetos referenciados por el objeto original. En otras palabras, la copia profunda copia el objeto que será clonado y los objetos a los...
Regístrate para leer el documento completo.