Wednesday, 23 September 2009

Implementando el Patrón Prototype

Continuando con la implementación de Thundax Box Manager, he cambiado el diseño de TBox para implementar un patrón prototipo y poder crear copias de ésta clase. Por lo tanto, utilizando el patrón Prototype podremos duplicar objetos clonando sus instancias. Con Delphi es un poco más complicado que con java y hay que picar un poco más de código. Si nos fijamos ahora en la configuración de Tbox veremos que ahora ya no hereda de TObject, sino que hay una interface de por medio llamada ICloneable y que nos permite la funcionalidad de poder clonar el objeto en si. No he encontrado ninguna implementación buena por la red de éste patrón, y la verdad es que no es muy complicada. Con otros lenguajes la cosa es más sencilla, por ejemplo java o C# donde ya existe la clonación de objetos.
Si observamos el nuevo diagrama UML del diseño de TBox tenemos:

La clase TBox implementa la interface ICloneable:

De ésta manera las instancias de TBox tienen la posibilidad de clonarse. Ésto me permite poder realizar copias de mis instancias en el Canvas.

En la última versión de ThundaxBoxManager v1.0.0 build 149.exe podremos realizar copias de los objetos incrustados utilizando el botón derecho del mouse y marcando las opciones de Copiar y Pegar. Además hay la opción de eliminar tanto cajas como conexiones.

Como podéis ver, el editor cada vez va cogiendo más color e incluso podemos realizar la exportación del gráfico a un fichero en bmp:

  • Enlaces de interés:
Creating Patterns in C#.
Cloning Objects.
Prototype Pattern.
Cast Constructor.
Explicit Interface Implementation.

0 comments:

Post a Comment