jueves, 24 de noviembre de 2011

Patrones de Diseño

Hola en esta entrada mostrare el ejercicio de las Pruebas de Bebidas en la que se utilizaban partes del código de como preparar un Té y un Café, pero estas son clases incompletas las cuales nosotros tenemos que darles los valores adecuados, y acomodarlas según sea necesario.

Como ya mencioné son clases separadas las cuales debemos implementar, y ¿Como las implementamos si no están completas? Pues en parte tiene que ver mucho el tema de "Superclases" y subclases, las cuales para poder utilizarlas debemos agregar el "abstract" a la "superclase" para que, en este caso java, sepa que no están completas.

Bueno primero especificamos que la superclase se hereda, e implementamos los métodos del tipo abstracto:


public abstract class BebidaCafeinada
{
 public final void prepararReceta()
 {
  hervir();
  poner();
  servir();
  agregaCondimentos();
  System.out.println();
 }

 public abstract void poner();
 public abstract void agregaCondimentos();

 public void hervir()
 {
  System.out.println("Hirviendo el Agua");
 }

 public void servir()
 {
  System.out.println("Sirviendo");
 }
}


Aquí tenemos la superclase, de esta se heredan los metodos "poner" y "agregaCondimentos"

Después tenemos las bebidas que mencionamos hay que darles sus algoritmos, la superclase se encarga de controlar el proceso.


public class Cafe extends BebidaCafeinada
{
 public void poner()
 {
  System.out.println("Poniendo el Cafe");
 }

 public void agregaCondimentos()
 {
  System.out.println("Agregando Azucar y Leche");
 }
}

Esta es la clase Café, que continua con el programa utilizando herencia.


public class Te extends BebidaCafeinada
{
 public void poner()
 {
  System.out.println("Poniendo el Te");
 }

 public void agregaCondimentos()
 {
  System.out.println("Agregando limon");
 }
}

Esta es parecida a la del Café, pero se llama "Te"


public class PruebaBebidas
{
 public static void main(String[] args)
 {
  Te elTe = new Te();
  Cafe elCafe = new Cafe();

  System.out.println("Preparando el Te");
  elTe.prepararReceta();

  System.out.println("Preparando el Cafe");
  elCafe.prepararReceta();
 }
}

Por ultimo esta clase se encarga de hacer la prueba y mostrar los resultados en conjunto.

Bien ahora hacemos la prueba:
Primero vamos al directorio donde tenemos las clases, como son varios archivos ".java", podemos hacer uso del comando "javac *.java" para compilar todos de una sola vez.

Y ahora lo ejecutamos:


Y así es como termina, todo esto es buen motivo para aprender que cualquier código puede reutilizarse e implementarse como tipo abstracto, solo hace falta dar los valores a las variables y demás detalles estéticos.
Utilizando esta manera de programar es mas sencillo implementar otros tipos de clases que se ajusten al método.



No hay comentarios:

Publicar un comentario