Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



jueves, 2 de enero de 2014

Patrón Prototype. Ejemplo tipos de televisiones.




Patrón Prototype.

 Ejemplo tipos de televisiones.





"El patrón prototype tiene  como finalidad crear nuevos objetos duplicándolos, clonando una instancia creada previamente."
Se usa en un escenario donde sea necesario la creación de objetos parametrizados como "recién salidos de fábrica" ya listos para utilizarse, con la gran ventaja de la mejora de la performance: clonar objetos es más rápido que crearlos y luego darles valor a cada parametro en particular.
Este patrón debe ser utilizado cuando un sistema posea objetos con datos repetitivos, en cuanto a sus atributos: por ejemplo, si una biblioteca posee una gran cantidad de libros de una misma editorial, mismo idioma, etc. Hay que pensar en este patrón como si fuese un fábrica que tiene ciertas plantillas de ejemplos de sus productos y, a partir de estos prototipos, puede crear una gran cantidad de productos con esas características.


Diagrama UML:
Esquema UML

Prototype: declara la interface del objeto que se clona. Suele ser una clase abstracta.
PrototypeConcreto:las clases en este papel implementan una operación por medio de la clonación de sí mismo.
Cliente: crea nuevos objetos pidiendo al prototipo que se clone.

Los objetos de Prototipo Concreto heredan de Prototype y de esta forma el patrón se asegura de que los objetos prototipo proporcionan un conjunto consistente de métodos para que los objetos clientes los utilicen.



Ejemplo:
Vamos a crear una clase de  prototipos de TVs. Para ello crearemos la clase TV y dos subclases: LCD y Plasma.   Según este esquema:




Clase TV:
Esta clase tiene el método Clone() que se encarga de hacer una copia de si misma y de devolverla.
->

Clase LCD:
El método clone() lo redefinimos segun las propiedades de los tv del tipo LCD ->

Clase Plasma:
El método clone() lo redefinimos segun las propiedades de los tv del tipo Plasma ->

Clase TVPrototype:
En esta clase, predefinimos los distintos tipos que va a tener el cliente disponible.
->

Programa Principal:
->

Ejemplo de la aplicación funcionando:



enlace de descarga del ejemplo completo: enlace desde box.com




Fuente:
http://migranitodejava.blogspot.com.es/search/label/Prototype