jueves, 31 de marzo de 2011

[TALLER] Aplicación de patrones de diseño en proyectos individuales

Ahora la implementación de los patrones de diseño, primero comenzare con el Singleton, que recordemos, es para crear objetos solo dentro de la misma clase.

Si en el diagrama no se ve el constructor es por que en este patrón se declara con atributo privado. Aquí el código:

package Organidatabase;

import java.util.Scanner;

public class Notas{
 
 private Notas nuevo = new Notas();
 String nota;
  
  private Notas () {
          System.out.println("Escriba su nota: ");
          Scanner a = new Scanner(System.in);
          nota=a.next();
     }
  
  public Notas new_note() {
   return nuevo;
  }


}
Podemos ver en el código que la creación de un nuevo objeto se restringe solamente a su clase.

Ahora veremos la clase Eventos, donde pretendo utilizar el patrón de diseño Composite.

Puede notarse que en la clase Eventos se están aplicando dos patrones de diseño como lo había dicho en mi entrada de clase, aplican ambas.

package Organidatabase;   
import java.util.ArrayList;
   import java.util.Scanner;

   public abstract class Eventos extends Database{
    String dia;
    String mes;
    String año;
    String hora;
    String lugar;
     
     public Eventos (String dia, String mes, String año, String hora, String lugar) {
      this.dia = dia;
      this.mes = mes;
      this.año = año;
      this.hora = hora;
      this.lugar = lugar;
     }
     
     public abstract void new_event(Eventos e);
       
   }

   abstract class Ev_priv extends Eventos{
    
    private ArrayList hijo = new ArrayList();
    public Ev_priv(String dia, String mes, String año, String hora, String lugar){
     super(lugar, hora, año, mes, dia);
    }
    
    public void new_event(Ev_priv e){
      hijo.add(e);
      System.out.print("Introduzca un fecha: ");
    Scanner a = new Scanner(System.in);
    dia=a.next();
    mes=a.next();
    año=a.next();
    System.out.print("Introduzca la hora: ");
    hora=a.next();
    System.out.print("Introduzca el lugar: ");
    }
}

   abstract class Ev_pub extends Eventos{
     
     ArrayList hijo = new ArrayList();
     public Ev_pub(String dia, String mes, String año, String hora, String lugar){
      super(lugar, hora, año, mes, dia);
     }
     
     public void new_event(Ev_pub e){
       hijo.add(e);
       System.out.print("Introduzca un fecha: ");
     Scanner a = new Scanner(System.in);
     dia=a.next();
     mes=a.next();
     año=a.next();
     System.out.print("Introduzca la hora: ");
     hora=a.next();
     System.out.print("Introduzca el lugar: ");
     }
   }
Por ahora estos son los patrones de diseño que utilizo, sin embargo me he dado cuenta que podemos utilizar muchos patrones en un mismo proyecto por lo que tal vez estos no sean los unicos.

2 comentarios:

Victor Alejandro dijo...

jeje, he notado que syntaxhighlighter piensa que las listas son etiquetas html, ignoren las lineas "" en el código.

Elisa dijo...

Eso explica porqué Adán los tiene también. Aunque él no explica porqué los pone ;) ¿No te deja mayúsculas iniciales en ellos tampoco?

Te pongo 3 por la entrada.

Publicar un comentario