Загрузка данных


Да, именно это и сделал.
DrawingBase оставил как общий базовый класс для всех дровингов – там общая работа с render, interaction, views и axis labels.
TwoPointDrawingBase добавил для дровингов, у которых есть две основные точки – start и end.
LinearDrawingBase вынес общую логику для Line и Ray: построение по двум точкам, handles и перетаскивание.
AreaDrawingBase – для Rectangle, Diapson и Fibonacci, где повторялась логика создания области, resize и перемещения.
Остальные дровинги оставил на DrawingBase, потому что у них своя специфичная логика и тащить их под эти абстракции было бы уже лишним.