Al empezar la clase comenzamos importando un nuevo proyecto que copiamos en el workspace.
Repasamos también la idea básica de los objetos y es que a la hora de introducirlo a una lista, de "sacarlo" a una variable, modificarlo y demás, en realidad siempre estamos trabajando con un mismo objeto, porque siempre estamos haciendo referencia al mismo objeto, no lo estamos copiando constantemente (para eso ya hay un método específico: clone()).
Colecciones
Si tenemos una lista de elementos y queremos ordenarlas tenemos dos maneras:
Sin pasarle el criterio del orden:
Collections.sort(clase)
Se da por hecho que la lista es de un tipo de objeto tiene que implementar Comparable. Si no se implementa no puedo utilizar el método.
Solamente funciona para clases que implementan Comparable.
public class Alumno implements Comparable
Y cuando decimos que nuestra clase implementa Comparable estamos obligados a implementar el método CompareTo() y ahí es donde decimos la comparación.
public int compareTo(Alumno o){
return this.dni.compareTo(o.dni);
}
Al pasarle el criterio del orden
Collections.sort(clase,ObjetoDeCriterio)
La clase no tiene porque implementar la clase Comparable.
El criterio es una clase que tenemos que crear implementando el Comparator.
public class AlumnoNombreComparator implements Comparator
public int compare(Alumno alumno1, Alumno alumno2) {
return alumno1.nombre.compareTo(alumno2.nombre);
}
}
Se puede invertir el orden, si "alumno1" es mayor que "alumno2", devuelve 1 y si es menor -1 y si son iguales 0.
Diseño de un programa en capas
Es un patrón de desarrollo.
Las responsabilidades de las clases son las capas.
Capa DAO: son clases que acceden a datos.
Las capas no ven entre capas. Por ejemplo, los controladores no pueden ver a la capa DAOs, sólo a la capa Servicios.
Si se realiza un cambio en una capa DAO no se debe de "enterar" la capa Controladores. A eso se le llama un programa robusto, porque si se cambia la capa DAO y se entera todo el mundo, entonces es frágil, no compila.
Los servicios no se relacionan con las clases, sino con las interfaces.
No hay comentarios:
Publicar un comentario