29 Sept 2022 🔫
- Si tengo código enmarañado (tangled, todo en un método) tengo una baja cohesión
- Si tengo código disperso (scattered, todo en demasiados métodos de demasiadas clases) tengo un alto acoplamiento
Atributos de calidad para el software
- Escalabilidad: a medida que crece, qué alternativas existen para lidiar con el crecimiento
- Mantenibilidad: los costes relativos de reparación o actualización
- Reusabilidad: capacidad del código para ser usado en otras aplicaciones
- Extensibilidad: la facilidad de adaptar el software sin modificar el ya existente
La clave para crear código de calidad es bajo acoplamiento y alta cohesión.
- Acoplamiento: las dependencias existentes entre módulos
- Cohesión: responsabilidad única
Patrón arquitectónico: Separación en capas
Ventajas:
- Reutilización: una vez hecha una capa, se puede usar por muchos clientes distintos
- Cohesión: cada capa se ocupa de una responsabilidad
- Mantenibilidad: mientras se mantenga la interfaz, las capas ignoras los cambios de implementación de otras capas
Desventajas:
- No siempre es posible una división estricta → Las transacciones hay que manejarlas desde la capa superior, porque sino habra comunicación entre la misma capa
- Las capas adicionales pueden degradar el rendimiento
- La arquitectura en capas exige dependencias hacia abajo
Patrón DTO (Data Transfer Objects, información que fluye entre capas)
- Colocar en la capa business y en la de persistencia para que la capa correspondiente sólo tenga dependencias de la capa de debajo.
Patrón Fachada
- Además oculta los detalles detrás de la interfaz.
Factoría
- Clase que crea instancias de interfaces ocultándole al cliente cómo las crea
6 Octubre 2022 🫐
Patrón DAO
- Define que nuevos objetos tienen que aparecer, dónde tienen que aparecer y es un intermediario entre la capa de negocio y el acceso a los datas
- Los DAO proporcionan métodos CRUD: inserción, actualización, borrado y consulta de información
Row Data Gateway
- Patrón que solicita implementar un objeto por cada fila de una tabla que tu recuperes
Table Data Gateway
- Es un DAO implementado uno para cada tabla
Patrones para la capa de negocio
- Transaction scripts