Сугубое ИМХО: в большинстве случаев один класс — один файл. Энумы, используемые в этом классе — в файл самого класса. Делаю исключение только для маленьких классов-наследников. Например, если есть базовый класс, и много мелких классов-наследников (в каждом по 1-2 новых поля, классы в большинстве являются просто контейнерами) — то их складывал в один файл.