Declare to the interface, instantiate the implementation
Declare to the interface, instantiate the implementation
Answer
List<Event> events = new ArrayList<>();
The variable type is the List interface; only the right side names the concrete ArrayList. The diamond <> infers <Event> from the declaration. This decouples every method using `events` from the implementation — the exact idiom the Greenhouse Controller uses.