Este proyecto implementa un sistema de control para una Smart Home, que permite gestionar varios dispositivos y realizar acciones en diferentes habitaciones de una casa inteligente. El sistema se basa en patrones de diseño como Comando y Observador para proporcionar funcionalidades de control y notificación.
- Encender y apagar luces en diferentes habitaciones.
- Abrir y cerrar la puerta del garaje.
- Encender y apagar la televisión.
- Controlar la velocidad de un ventilador de techo.
- Encender y apagar una bañera de hidromasaje.
- Controlar una radio estéreo en la sala de estar y en el dormitorio.
-
Patrón Comando: Los comandos específicos para cada dispositivo encapsulan las solicitudes y permiten su ejecución en momentos diferentes.
-
Patrón Observador: Los dispositivos notifican a los observadores cuando cambian de estado, y los observadores (como la clase
SmartHome
) reaccionan en consecuencia. -
Patrón Singleton: Se utiliza para garantizar una única instancia de la central del sistema (
SmartHomeCentral
).
Este proyecto está desarrollado en Java y utiliza la biblioteca Swing para crear una interfaz gráfica de usuario (GUI). Asegúrate de tener Java instalado en tu entorno de desarrollo.
- Clona este repositorio en tu máquina local.
- Abre el proyecto en tu entorno de desarrollo Java preferido.
- Ejecuta la clase
Main.java
para iniciar la aplicación.
La interfaz de usuario proporciona un control fácil de usar para administrar los dispositivos de la Smart Home. Puedes realizar acciones como encender y apagar luces, abrir la puerta del garaje, ajustar la velocidad del ventilador y más.
Imagen de la casa obtenida de: https://www.youtube.com/watch?app=desktop&v=M4MxA0REDAU
Las contribuciones son bienvenidas. Si deseas mejorar este proyecto, sigue estos pasos:
- Haz un fork del repositorio.
- Crea una rama para tu mejora (
git checkout -b feature/mejora
). - Realiza tus cambios y realiza confirmaciones significativas.
- Envía tus cambios (
git push origin feature/mejora
). - Abre una solicitud de extracción y describe tus cambios.
- Andrea Lima Blanca
- Contacto: andrealimablanca@outlook.com