Программирование в объектно-ориентированном стиле сводится не только к написанию классов, и созданию на основе их объектов, но и к взаимодействию классов между собой.
Наследование, полиморфизм, инкапсуляция, агрегация и композиция - это простые варианты взаимодействия классов между собой.
Архитектурные шаблоны и шаблоны проектирования практических задач - это тоже варианты взаимодействия классов, но уже более высокого уровня, с предопределенной структурой папок и файлов.