Este patrón se llama estrategia y sirve básicamente para cambiar un algoritmo que una classe implementa.
En el ejemplo en código, se crea una objeto banda que tiene un atributo objeto integrantes, pues bien, supongamos que ese objeto integrantes es un objeto que se pueda intercambiar fácilmente al crear este objeto banda y pasándole el objeto integrantes correspodiente al tipo de banda que queremos crear.
la clase IntegrantesXXXXXXXXX hace la implementación adecuada.
Acá va el código, have fun!
Archive for Mayo, 2007
Patrón Strategy (Estrategia)
Martes, Mayo 22nd, 2007Patrón Factory
Jueves, Mayo 3rd, 2007
Este es uno de mis patrones favoritos, se llama Factory y la idea es que exista una clase Factory que devuelve un objeto con las características propias de ese factory.
En el ejemplo puedes ver que se necesitan crear objetos banda (de música Rock, Jazz, etc.) entonces se usa una clase JazzBandFactory que devuelve un objeto Banda con el atributo estilo con valor "Jazz" a través del método make() que es llamado desde una clase Factory abstracta.
El truco es que la clase abstracta tiene un método abstracto, entonces al llamar a ese método abstracto se usa el implementado por la subclase JazzBandFactory.
Así se genera una aplicación lista para implementarse, simplemente ante la necesidad de crear un nuevo tipo de banda, creamos una classe xxxxxxxxxFactory que crea y setéa un objeto banda de la manera que sea necesaria.
A nivel de código sería :
JazzBandFactory productorJazz = new JazzBandFactory();
Band banda = productorJazz.create(); //Este es la llamada al método de la Clase Abstracta Padre, este método llama al abstracto make que es implementado por JazzBandFactory.
// Aquí ya el objeto banda tiene los valores que le da JazzbandFactory en el metodo make
Descarga el código Java acá Factory.zip
Se puede usar en miles de casos, por ejemplo en perfiles de usuario, botones de un determinado estilo, etc, etc.
En el ejemplo puedes ver que se necesitan crear objetos banda (de música Rock, Jazz, etc.) entonces se usa una clase JazzBandFactory que devuelve un objeto Banda con el atributo estilo con valor "Jazz" a través del método make() que es llamado desde una clase Factory abstracta.
El truco es que la clase abstracta tiene un método abstracto, entonces al llamar a ese método abstracto se usa el implementado por la subclase JazzBandFactory.
Así se genera una aplicación lista para implementarse, simplemente ante la necesidad de crear un nuevo tipo de banda, creamos una classe xxxxxxxxxFactory que crea y setéa un objeto banda de la manera que sea necesaria.
A nivel de código sería :
JazzBandFactory productorJazz = new JazzBandFactory();
Band banda = productorJazz.create(); //Este es la llamada al método de la Clase Abstracta Padre, este método llama al abstracto make que es implementado por JazzBandFactory.
// Aquí ya el objeto banda tiene los valores que le da JazzbandFactory en el metodo make
Descarga el código Java acá Factory.zip
Se puede usar en miles de casos, por ejemplo en perfiles de usuario, botones de un determinado estilo, etc, etc.
Patrón decorator
Jueves, Mayo 3rd, 2007
Ahora pongo el código en Java del patrón Decorator, por que los comentarios me dicen que no se entiende. Decorator.zip