Попробуйте так:
На контроллер отрисовки поступает графический объект и объект, представляющий режим отрисовки, скажем прерыистой линией.
Выясняем посредством RTTI, умеет ли данный графический объект рисовать себя прерыистой линией, то есть является ли он соответствующим абстрактным классом. Если да, то вызывается его метод. Если нет, то выясняем, умеет ли режим отрисовки прерывистой линией рисовать графические объекты данного класса. Ну уж если и этот метод не реализован, тогда придётся вызывать у объекта метод НарисуйСебяКакНибудь, а у режима ПометьНаРисункеЭтотОбъектЧтобКазалосьЧтоОнВТвоемРежимеНарисован
По ходу дела будете добавлять реализацию интерфейсов в объекты и режимы.
В Открытых системах за прошлый год по этому поводу была статья, где предлагалось несколько решений данной проблемы.