Ho trascorso la maggior parte della mia carriera di programmazione utilizzando Java e C ++ basato su OO. Sono davvero interessato a imparare a pensare in modo più procedurale, quindi ho iniziato a fare pratica usando un sottoinsieme più ristretto di C ++ (fondamentalmente C) e cercando di mantenere il mio codice molto procedurale.
La mia domanda si trova nell'area di come strutturare un programma. In Java, penso costantemente agli oggetti ... quindi quando creo una classe, penso a:
- Che cos'è questo oggetto che rappresenta?
- Cosa può fare questo oggetto?
- Che cosa devono essere gli altri per poterlo fare?
- Che cosa espongo, cosa nascondo?
- Etc
Nel caso del codice procedurale, come funziona questo genere di cose? Diciamo che volevo una struttura per rappresentare una macchina. Vorrei creare un'intestazione per definirlo in ... ma dove vanno le funzioni che dovrebbero funzionare su un tipo di auto? Definiresti anche tutte le funzioni relative alla Car nella stessa linea di file di una classe Java? Sto pensando completamente a questo nel modo sbagliato, nel senso che non dovrebbero esserci funzioni correlate all'auto, dal momento che l'enfasi non dovrebbe essere sull'oggetto Car ma sulle funzioni stesse? L'idea di una funzione membro è totalmente buttata fuori dalla finestra?
La linea di fondo è che il mio cervello è stato cablato per pensare a Oggetti, Incapsulamento, Polimorfismo, ecc. e non riesco a pensare a nient'altro. Come posso esercitarmi?
Qualche consiglio è apprezzato!