SP
Сейчас у меня это работает так:
Веб-приложение - это налоговая, к ней приходят транзакции 2 видов: Одна обычная, перевод денег, а вторая - перевод собственности, она наследуется от первой транзакции. И внутри второй есть разные обьекты, типа Машина, Дом, Участок. Транзакции приходят на сервер, а там итеративно раздаются всем обработчикам - и каждый обработчик сам решает, может ли он обработать данную транзакцию. Что-то типа Chain Of Responsibility, только модифицированный. И вот внутри эти обработчиков я делаю что-то типа:
if (transaction instanceof CarTransaction) ... - Вот так это сейчас у меня выглядит.