Dipende da che tipo di progetto è... Se ti serve l'interfaccia grafica di solito si usa separare le classi della logica da quelle dell'interfaccia, in cartelle separate. Inoltre se la logica è particolarmente complessa è buona norma dividere le classi della logica (ad esempio eventuali plugin o funzionalità aggiuntive complesse possono essere messi in una sottocartella della logica).
Non c'è una regola precisa, ad esempio dipende molto da quanto tieni in considerazione chi dovrà leggere il tuo codice per modificarlo, eventualmente... In tal caso suddividere in sottocartelle facilita la comprensione dell'organizzazione generale del progetto...