Вопрос по объектам java
Изучаю java. Столкнулся с такой проблемой, что тяжело связывать объекты при решении определенных задача. Есть задачи более понятные, там получается, но бывает совершенно непонятно.
Пример: "Написать виртуальную файловую систему с функциями добавления, удаления и т.д." Смотрел некоторые решения в инете, у многих разные, конкретно для меня пытаюсь разбивать в уме задачу на подзадачи, но, видно, не совсем правильно умею это делать, тяжело объяснить, но в данном примере не понимаю, как клеить пути к файлам и папкам, как это хранить (не в смысле как хранить, в коллекции, например, а в смысле, что как при обходе каталог сделать, чтобы правильно отобразился путь, то есть связь объектов папки и файла).
Ну, представление есть - класс FileSystem с наследниками FileDir и File, ну и т.д., хранить в коллекции. Но когда начинаю писать уже код, то постоянно сталкиваюсь с тем, что что-то непонятно, и не могу продвинутся. Чаще всего, это когда есть связь с 2-3 объектами, либо как-то передается через 1 объект в другой, ну, сложновато так объяснить, надеюсь, получилось.
Посоветуйте книги, может, есть в каких-то книгах разбор, как нужно строить объекты, алгоритмы, шаблоны, типичные подходы для решения задач. Или, может, есть какие-то методики, которые можно применить для упрощения построения объектов и связи между ними?
Заранее спасибо.