☕ KonnektApp — Simulador de Red Social de Escritorio en Java
Implementación Rigurosa de los 4 Pilares de la POO y Patrón MVC
KonnektApp es una aplicación de escritorio desarrollada en Java (JDK 17+) con interfaz gráfica en Java Swing. Demuestra la aplicación metódica de los principios fundamentales de la Programación Orientada a Objetos mediante el patrón de diseño arquitectónico Modelo-Vista-Controlador (MVC).
- 💻 Repositorio GitHub: github.com/Alecwce/KonnektApp
- 📄 Licencia: MIT | Lenguaje: Java 17+ | GUI: Java Swing
🏛️ Arquitectura Modelo - Vista - Controlador (MVC)
flowchart TD User([👤 Usuario]) <--> View["🖥️ VISTA (Java Swing)\nPaneles GUI, Formularios & Renderers"] View <-->|Eventos de Acción ActionListener| Controller["🧠 CONTROLADOR\nValida Reglas de Negocio & Enrutamiento"] Controller <-->|Modifica y Lee Estado| Model["📦 MODELO\nClases de Entidad (User, Post, Comment)"]
🧩 Los 4 Pilares de la Programación Orientada a Objetos en KonnektApp
- Abstracción:
- Modelado de clases base y contratos (
Post,Interactable,Notification) aislando la complejidad interna de almacenamiento y renderizado.
- Modelado de clases base y contratos (
- Encapsulamiento:
- Todos los atributos críticos de usuario (contraseñas hasheadas, listas de amigos, estados de sesión) están protegidos mediante modificadores de acceso privados con métodos getters y setters validados.
- Herencia:
- Jerarquía extensible de publicaciones: una clase base abstracta
Postde la cual heredanTextPost(publicaciones de texto enriquecido) yMediaPost(publicaciones con imágenes o adjuntos).
- Jerarquía extensible de publicaciones: una clase base abstracta
- Polimorfismo:
- El muro de noticias (Feed) itera sobre una lista polimórfica
List<Post>, invocando el método sobreescritorenderUI()de cada publicación sin necesidad de condicionalesif/elsedependientes del tipo de objeto.
- El muro de noticias (Feed) itera sobre una lista polimórfica
✨ Funcionalidades del Simulador
- Gestión de Sesiones: Registro de usuarios, login con validación de credenciales y cierre de sesión.
- Interacciones Sociales: Sistema de reacciones (likes), hilos de comentarios anidados y contador de vistas.
- Gestor Dinámico de Notificaciones: Notificaciones en tiempo real para el autor cuando otros usuarios interactúan con sus publicaciones.
- Persistencia en Memoria / Archivos: Gestión de colecciones concurrentes para garantizar estabilidad en la interfaz gráfica.