A modern Core Java project demonstrating advanced concepts like Generics, The Collections Framework, and Lambda Expressions by refactoring a basic notification system into a scalable, bulk-processing engine.
- Functional Interfaces & Lambdas: Used @FunctionalInterface to abstract notification behaviors and leverage Java Lambdas for concise code.
- Generics (): Built a type-safe NotificationManager that safely restricts inputs to valid notification classes.
- Collections Framework (ArrayList): Transitioned from standard static arrays to dynamic lists to handle real-world, variable data inputs.
- Clean Architecture: Separated concerns between the data structures, management engine, and execution blocks.
Instead of manual initialization and individual execution loops, the engine queues notifications dynamically and flushes them using functional streams:
`java public void sendAll() { notifications.forEach(n -> n.send()); }