Questionnement sur les .h
Petite question que je me pose sur les .h, je peux avoir une série d'objet utilisant d'autres objets
X va utiliser Album.h, Song.h, Title.h
Y va utiliser Album.h, Stream.h, Song.h
Z va utiliser Stream.h, Song.h
Par soucis de propreté je pensais à mettre tout ça dans un global.h mais c'est une pratique que je ne vois jamais donc j'en conclu que c'est "mal" ?
Si c'est le cas, pourquoi, ça implique quoi ?
Merci.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Pour que la compilation ne prenne pas des plombes il vaut mieux limiter les
import
que tu utilise.Ce qui fait que techniquement tu peux le faire mais tu risque d'inclure des .h sans que ça soit utile et augmenter ton temps de compilation. Il vaut mieux rester sobre à ce niveau là.
Ok, merci
Je ne pense pas que le temps de compilation augmente énormément, les .m de tes .h sont compilés indépendamment et seulement quand le code du .m est modifié (ou qu'il utilise un import modifié ça va de soi). Le linker se charge de lié les modules interdépendants à postériori.
Mais en faisant de la sorte, outre le fait que le réseau d'interdépendance devient difficile à suivre, tu vas rendre certains objets dépendant d'autres qui n'ont rien à voir avec. Ce qui risque de complexifier l'extraction de ces objets pour les insérer dans une nouvelle bibliothèque par exemple.
Par contre, si les objets "terminaux" doivent faire l'objet d'une bibliothèque autonome, il est habituel de créer un fichier global à appeler une seule fois dans les fichiers qui l'utiliserons. Il devient alors facile de créer un framework ou une librairie puisque ce fichier regroupe ce qui doit être "visible".
A titre personnel, je fonctionne de manière classique, par couche (une bibliothèque représentant une couche) :
Merci