Patrones Creacionales: Prototype

Publicado el 04 febrero 2015 por Alexander171294 @std_io
En la entrada de hoy hablaremos sobre el patrón creacional de diseño Prototype, en entradas anteriores podemos apreciar diferentes patrones, como Factory, ObjectPool, etc. puedes ver por supuesto la entrada introductoria al tema aquí, y puedes ver el listado de teoría donde hay una sección de patrones aquí.
El patrón prototype tiene como idea fundamental, la de crear objetos basandose en clonar objetos previamente creados, debe incluir en su abstracción la funcion clonadora, para que luego en cada caso particular se establezca las especificaciones de la clonación (esto es la funcion __clone).
Este patrón es de utilidad cuando se quiere separar la lógica de la creación de objetos de su futura implementación creando así una instancia inicial pasando por todo el proceso de la creación, para luego simplemente copiar esa instancia y manejarla sin pensar en como fué construida y no tener que pasar por dicho proceso de nuevo.
La instancia prototipo solo debe ser utilizada para ser clonada, y no debe ser utilizada con otro propósito, por evidentes razones.
dejo aquí un ejemplo de código de prototype en php:
http://pastebin.com/tcQxRB1i
un saludo para todos los lectores!