lunes, 28 de marzo de 2011

Incorporación de patrones de diseño

Semana 9
Taller de Programación Orientada a Objetos


Ahora la implementación en código de los patrones de Diseño que creo adecuados para mi proyecto, aunque no es definitivo que se queden en el código, ya que hay algunas cosas que me parecen mas sencillas si las implemento con mi propio código, pero usaré lo que mas me simplifique el código.

El patrón Composite
Este no es el caso de lo que dije arriba, ya que tenia solo pensado que quería poder agarrar las cosas individualmente ya después de haberlas hecho por ejemplo un circulo, una raya, etc., para poderlos mover, copiar, borrar pero no tenia ni idea de como, siento que este patrón me abrió bastante la mente.
Este es el diagrama:


Y este es el código:
#include "GrupoImagenes.js"
Grafico = function ()
{
this._init ();
}
Grafico.prototype._init = function ()
{

}
Grafico.prototype.pintar = function ()
{

}
#include "Grafico.js"
GrupoImagenes = function ()
{
this._init ();
}

GrupoImagenes.prototype = new Grafico ();
GrupoImagenes.prototype._init = function ()
{
this.m_cantidad = "";
}

GrupoImagenes.prototype.pintar = function ()
{

}
#include "Grafico.js"
Triangulo = function ()
{
this._init ();
}
Triangulo.prototype = new Grafico ();
Triangulo.prototype._init = function ()
{
this.m_base = "";
this.m_altura = "";
}
Triangulo.prototype.pintar = function ()
{

}

#include "Grafico.js"
Cuadrado = function ()
{
this._init ();
}

Cuadrado.prototype = new Grafico ();
Cuadrado.prototype._init = function ()
{
this.m_lado = "";
}
Cuadrado.prototype.pintar = function ()
{

}

#include "Grafico.js"
Circulo = function ()
{
this._init ();
}

Circulo.prototype = new Grafico ();
Circulo.prototype._init = function ()
{
this.m_radio = "";
}

Circulo.prototype.pintar = function ()
{
}


Patrón Factory
Bueno el Patrón Factory lo elegí porque me permite hacer muchos objetos que es lo que necesito para mi editor de dibujo, pero es importante para mi aclararles que la verdad me revuelve un poco esta manera de crear objetos a como yo los creaba antes, entonces el código aquí esta, sin embargo, no es seguro que sea el definitivo, esto es en el caso de Factory.
Este es el diagrama:

Y este es el código:


//parte de codigo
#include "Factory.js"
Factory = function ()
{
this._init ();
}
Factory.prototype._init = function ()
{
}
Factory.prototype.crearCirculo_Circulo = function ()
{

}
Factory.prototype.crearRectangulo_Rectangulo = function ()
{

}
Factory.prototype.crearLinea_Linea = function ()
{

}
Factory.prototype.crearPoligono_Poligono = function ()
{

}

#include "Factory.js"
#include "Circulo1_Concreta.js"
#include "Linea1_Concreta.js"
#include "Poligono1_Concreta.js"
#include "Rectangulo1_Concreta.js"

FactoriaConcreta_1 = function ()
{
this._init ();
}

FactoriaConcreta_1.prototype = new Factory ();
FactoriaConcreta_1.prototype._init = function ()
{

}
FactoriaConcreta_1.prototype.crearCirculo_Circulo = function ()
{

}
FactoriaConcreta_1.prototype.crearRectangulo_Rectangulo = function ()
{

}
FactoriaConcreta_1.prototype.crearLinea_Linea = function ()
{

}
FactoriaConcreta_1.prototype.crearPoligono_Poligono = function ()
{

}



Patrón prototype
Este es otro más que me parece adecuado para mi para que a la hora que se quieran copar los objetos se haga de manera eficiente.

Este es el diagrama:


Y este es el código:
//parte de codigo
#include "FigGeom.js"
Dibujo = function ()
{
this._init ();
}
Dibujo.prototype._init = function ()
{

}
Dibujo.prototype.dibujar = function ()
{

}
Dibujo.prototype.rellenar = function ()
{

}
Dibujo.prototype.agregarClick = function ()
{

}
#include "FigGeom.js"
Circulo = function ()
{
this._init ();
}

Circulo.prototype = new FigGeom ();

Circulo.prototype._init = function ()
{
}
Circulo.prototype.clone = function ()
{

}

FigGeom = function ()
{
this._init ();
}
FigGeom.prototype._init = function ()
{

}FigGeom.prototype.clone = function ()
{

}

#include "FigGeom.js"

Ovalo = function ()
{
this._init ();
}

Ovalo.prototype = new FigGeom ();
Ovalo.prototype._init = function ()
{

}
Ovalo.prototype.clone = function ()
{

}

1 comentario:

  1. Pues, falta meterle bastante carne, pero ahí va encaminado. Te pongo 4.

    ResponderEliminar