Trucos sobre manejo de softwarelibre y gnu linux. También a los programas que hago en gambas3, python, java, etc.... Consejos y trucos sobre otros programas: excel, word, internet, instalación de programas, Arduino y demás....
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.
->
TextArea1.text&="añado un nuevo television tv3, veo sus datos... "& gb.CrLf&"y muestro los tv anteriores para comprobar que el prototipo sigue funcionando:"& gb.CrLf