Как избавится от сравнения класов

Динамическое связывание
на самом деле это должно выглядеть как-то так.

Преимущество, в любое время можем поменять интерфейсы.
Порождение таблицы как правило выносят в фабрику
@valentina-kustikova @kirill-kornyakov Мы с Валентиной решили использовать мою ветку.
Если ты хочешь ее править, то ждем предложений.