Respuestas
Respuesta:
Tiene como finalidad crear nuevos objetos 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.
Explicación:
Tipos de prototipos
Puede ver los prototipos de dos maneras: qué exploran y cómo evolucionan o cuál es su resultado.
En el contexto de la primera vista, qué exploran, hay dos clases principales de prototipos:
Un prototipo de comportamiento
Un prototipo estructural
En el contexto de la segunda vista, el resultado, también hay dos clases de prototipos:
Un prototipo exploratorio
Un prototipo evolutivo
Prototipos exploratorios
Un prototipo exploratorio está diseñado como un pequeño "experimento" para probar algunos supuestos clave del proyecto, ya sea la funcionalidad, la tecnología o ambas.
Los prototipos exploratorios suelen "desecharse" de forma intencionada, y su comprobación suele ser informal.
Prototipos evolutivos
Los prototipos evolutivos, como indica su nombre, evolucionan de una iteración a la siguiente. Aunque inicialmente no se controla la calidad de la producción, el código suele revisarse a medida que evoluciona el producto. A medida que el producto evoluciona, la prueba se formaliza y, a veces, el diseño también.
Prototipos de comportamiento
Los prototipos de comportamiento suelen ser prototipos exploratorios; no pretenden reproducir la arquitectura del sistema que se va a desarrollar, sino centrarse en qué verán los usuarios que hace el sistema (la "piel"). Con frecuencia, esta clase de prototipo se realiza "rápido y en sucio", no está construida de acuerdo con los estándares del proyecto.
Prototipos estructurales
Los prototipos estructurales suelen ser prototipos evolutivos; lo más probable es que utilicen la infraestructura del sistema final (el "esqueleto") y evolucionen hasta convertirse en el sistema real.