Authors: Daria Kuznetsova & Khomenko Tymofii
The SmartHome System is a Java-based simulation of a smart home system with device management and automation. It improves home automation by connecting smart devices and allowing easy interaction between residents and automated systems. It also has a statistics module to track and analyze system performance.
- 🌡 Temperature Monitoring – Automatically checks and adjusts home temperature.
- 📺 TV Volume Control – Increase or decrease TV volume remotely.
- ❄ Smart Fridge Management – Load and take products.
- 🔌 Device Control – Turn devices on/off based on user input.
- 📊 Statistics Tracking – Collect and analyze data on device usage and system interactions.
The system is designed using various software design patterns to ensure maintainability, scalability, and efficiency:
- 🔄 Observer Pattern – Used for monitoring system changes, such as temperature adjustments.
- 🏗 Factory Method Pattern – Manages the creation of smart home devices dynamically.
- 🎭 Singleton Pattern – Ensures a single instance of key system components (e.g., statistics manager).
- 🔌 Command Pattern – Allows encapsulating smart home device operations (turning on/off, adjusting settings) as commands.
- 🌳 Composite Pattern – Organizes smart home devices into hierarchical structures.
- 🎯 Strategy Pattern – Enables flexible behavior selection for data collection(statistic).
- ⏳ Lazy Initialization – Delays the creation of objects until they are actually needed, optimizing performance.
