Files
AD-Tarea4.1/README.md
2026-04-10 22:42:55 +00:00

26 lines
2.4 KiB
Markdown

📂 Estructura del Proyecto: Arquitectura en Capas (Java)
Esta estructura sigue el patrón DAO (Data Access Object) y separa la lógica de acceso a datos de la interfaz de usuario.
1. 🏗️ Capa de Modelo y Datos (modelo/)
Es el núcleo de la aplicación, donde se define la información y cómo se guarda.
Departamento.java: Es un POJO (Plain Old Java Object). Representa la entidad "Departamento" con sus atributos (id, nombre, etc.), constructores, getters y setters.
exceptions/: Contiene excepciones personalizadas para manejar errores de lógica de negocio:
InstanceNotFoundException.java: Se lanza cuando buscas un departamento que no existe.
DuplicateInstanceException.java: Se lanza si intentas crear un departamento con un ID que ya existe.
2. 🗄️ Capa DAO (Data Access Object - modelo/dao/)
Se encarga exclusivamente de las operaciones de lectura y escritura en la base de datos (CRUD).
IGenericDao.java: Interfaz genérica que define métodos estándar (crear, leer, borrar) para cualquier tipo de objeto.
AbstractGenericDao.java: Clase que implementa la lógica común de la interfaz genérica para evitar repetir código en otros DAOs.
departamento/IDepartamentoDao.java: Interfaz específica para las operaciones de la entidad Departamento.
departamento/DepartamentoEXistDao.java: Implementación real de los métodos. Por su nombre, parece que utiliza eXist-db (una base de datos XML) para guardar la información.
3. 🧠 Capa de Servicio (modelo/servicio/)
Actúa como intermediario entre la interfaz de usuario y los DAOs. Aquí es donde se aplica la "lógica de negocio".
IServicioDepartamento.java: Interfaz que define qué acciones puede realizar el usuario (ej: registrarNuevoDepartamento()).
ServicioDepartamento.java: Implementación de la lógica. Valida datos y decide cuándo llamar al DAO o cuándo lanzar una excepción.
4. 🖼️ Capa de Interfaz (GUI - modelo/main/)
Contiene las ventanas de la aplicación (probablemente creadas con Swing o AWT).
DeptWindow.java: La ventana principal que muestra la lista de departamentos o el menú general.
CreateNewDeptDialog.java: Una ventana secundaria (diálogo) con un formulario para introducir los datos de un nuevo departamento.
5. 🛠️ Utilidades (util/)
Clases auxiliares para la infraestructura técnica.
ConnectionManager.java: Gestiona el ciclo de vida de la conexión (abrir y cerrar) con la base de datos.
MyDataSource.java: Almacena la configuración de acceso (URL del servidor, puerto, usuario y contraseña).