Поможет перестать мыслить плоско и использовать диаграмму классов. К проектированию все это не имеет отношение.
Прочитайте про декомпозицию систем, уроню декомпозиции, теория систем, SOLID.
Как я понял, вам нужно сделать модуль парсера.
Point, Edge, Graph - это не программные сущности, а просто структура данных без функционала. Им точно не нужен Container.
Parser - универсальный модуль, который может серилизовать и дессерилозвать, любые абстрактые данные. Его уже можно разбить на модули для записи и чтения файлов или на парсеры конкретных объектов.
Модули нижнего уровня декомпозиции не могут ссылать напрямую к модулях верхнего уровня. Все связи должны идти сверху-вниз. А вот уже на такой структуре можно применять инверсию зависимостей.