This project contains Java implementations of two fundamental design patterns: Iterator and Mediator.
The Iterator Pattern section demonstrates how to traverse collections of media files in a streaming service using custom iterators. It showcases clean separation between collection logic and iteration logic, supporting both normal and filtered traversal.
The Mediator Pattern section simulates an airport control tower. Different aircraft (passenger planes, cargo planes, helicopters) request to land or take off on a single runway. Instead of communicating with each other directly, all aircraft interact through the control tower, which manages scheduling, prioritizes emergencies, and ensures safe coordination.
This homework is designed to deepen understanding of design patterns, decouple object interaction, and illustrate real-time communication through scheduling and simulation.