Помогите с задачей на паттерны проектирования на Java
Есть задача: Разработать класс Светофор, у которого должен быть метот next(), при вызове которого должна загораться текущая секция светофора. Но прикол в другом, надо решить ее без if, for, while, switch. Также обязательное условие: добавление секций возможно без переписывания класса Светофор.
Мой вариант без применения паттернов:
Светофор:
public class TrafficLight {
List<ISection> section = new ArrayList<>();
int index = 0;
public void addSection(ISection section) {
this.section.add(section);
}
public void next (){
section.get(index++%section.size()).light();
}
}
Секция светофора:
public class Section implements ISection{
String color;
public Section(String color) {
this.color = color;
}
@Override
public void light() {
System.out.println(color);
}
}
Решение рабочее, но в жизни желтый горит и после красного, и после зеленого, а у меня не так. Думаю что добавление 4-ой секции недопустимо, поэтому прошу помочь мне реализовать "правильный" светофор с соблюдением условий задачи и возможным применением какого-то паттерна поведения.