Mi sto cimentando da poco con la programmazione ad oggetti e sto trovando grande difficoltà nell'organizzazione del codice

Spesso faccio confusione e non mi ricordo piu' niente di quello che ho fatto.

Come dovrebbe essere organizzato il codice?
Tipo io utilizzo una sola pagina per mostrare i contenuti e poi richiamo una variabile get e da li mi ricavo il contenuto della pagina, tipo www.pagina.it?page=contenuto

pero' mi sto rendendo conto che è davvero confusionario, perchè nell'inclusione di funzioni ecc devo fare parecchi ifelse.
Poi una cosa che non ho capito della programmazione a oggetti e che devo mettere tutte le regole di login, registrazione vari controlli ecc tutti in una classe, estesa a sottoclassi ecc?

oppure per ogni "applicazione" posso fare una determinata interfaccia con le relative classi astratte e non?

Qualcuno mi può dare dei consigli sull'organizzazione?
Grazie