Имеется модель данных, набор сервисов и два клиента — web и desktop. Модель данных в данном контексте это классы. Сервисы управляют моделью, клиенты пользуются сервисами и имеют доступ к модели. Есть у нас к примеру интерфейс Shape и его реализации, классы Circle, Ellipse, Rectangle. Клиенты выполняют отрисовку этих фигур. Если бы был только десктоп-клиент, дизайн можно было бы построить с помощью какого нить Посетителя. Подскажите, пожалуйста, как правильнее поступить в случае с веб-клиентом (html+js)? Пока вижу только самый простой вариант — ввести в фигурах филд shapeType, и уже на клиентах делать ветвление.