questo dice che i file di intestazione sono di cattiva progettazione, ma io non sapere perché. Le risposte specificate riguardano l'inefficienza del file di intestazione durante la creazione. Perché è cattivo design non viene realmente toccato.
Per quanto ne so:
- le intestazioni ti permettono di rompere il file sorgente in modo da poter compilare più piccole cose più velocemente
- le intestazioni ti consentono di separare l'interfaccia dall'implementazione
- le intestazioni ti consentono di specificare la funzionalità in un'unica posizione. vale a dire. senza ripetere
Tuttavia, l'utilizzo di include, include guardie, intestazioni, ecc. è considerato un cattivo design. Come mai? Quali sono le alternative?
- EDIT: re. Problemi di DRY
Un argomento comune è che viola DRY in quanto si ripetono i cambiamenti nelle firme in entrambi i file .cpp e .h. Tuttavia, se il codice è progettato per riutilizzare la funzionalità specificata in file esterni, non è inevitabile che i file di intestazione debbano essere utilizzati?
La domanda chiede perché i file di intestazione sono di cattiva progettazione, ma senza le intestazioni, la modularità non viene persa? Se la modularità viene persa, non è di per sé un problema di progettazione? Pertanto, l'utilizzo di file di intestazione causa un problema di progettazione separato.
Ripetendo in generale è una cattiva idea, l'ho capito, ma sembra inevitabile se richiedi funzionalità comuni. In tal caso le intestazioni sono cattive, in termini di ripetizione della firma. In termini di progettazione del software, sono incline a dire che suddividere il codice / modularizzare e riutilizzare il codice significa che il codice è stato progettato correttamente.