Для сценария реального мира, я думаю, вы должны изучить механизмы правил, см. https://www.baeldung.com/java-rule-engines для списка примеров.
Суть в следующем: представление ваших правил в рукописном коде не масштабируется!Нет хороших шаблонов, которые бы препятствовали превращению такой базы кода в код спагетти с течением времени.В реальном мире такие правила часто меняются, и поддержание вашего кода в актуальном состоянии часто приводит к тому, что система воздуховодов прикрепляет к нему еще одно условие.
Поэтому у нас есть механизмы правил, которые позволяют вам выражать элементы для таких сложных решенийспособами, которые лучше поддерживать по сравнению с рукописными каскадами блоков if else.
И дело в том, что если вы серьезно относитесь к качеству своей работы, вы все равно, скорее всего, самостоятельно внедрите свой собственный маленький механизм правил.Так почему бы не выбрать один с полки или, по крайней мере, тщательно изучить его и использовать в качестве вдохновения, как лучше решить вашу проблему ?!