Bonjour,
Je me suis mis il y a peu au C++/Qt (avec un déjà bon passé de c#). Après avoir lu les faq C++ et Qt, j'ai trouvé réponses à bon nombre de mes questions.
Le point délicat pour lequel j'ai du mal à trouver une réponse est la gestion des "delete" des objets que je crée. Pour tous les objets structurants (dao, repository, services, factory, controller, view, ...) pas de souci, je vois bien comment gérer.
Par contre pour mes entités (panier d'achat, articles, ...), si je sais que je les crée dans un Factory la plupart du temps, j'ai du mal à savoir où il est le plus pratique / le plus recommandable de gérer leur suppression de la mémoire. Et surtout pourquoi. En c#, c'est une question que je ne me suis jamais posé :-)
1/ Dans le Factory parce que c'est lui qui crée alors c'est à lui de détruire ? Pourquoi pas sur le principe mais comment peut-il savoir qu'on a fini d'utiliser ce qu'il a créé ?
2/ Dans le Repository parce que c'est lui qui gère le cycle de vie de mes entités ? oui mais non, on parle du cycle de vie au sens de l'entité (création modif, archivage, suppression), pas vraiment au sens technique de programmation...
3/ Dans le controller ? Après tout c'est un problème bien applicatif, la couche semble être appropriée.
4/ Dans la vue, une fois qu'on a finit de lier le modèle ? bof, bof, son job c'est d'interagir avec l'utilisateur, pas trop la gestion de la mémoire.
L'idée de la question est : la couche métier renvoie une liste des articles correspondants à la recherche (genre un QList<Article*>).
Dois-je tourner sur toute la liste pour faire des delete puis un delete de la liste elle-même ? Qui est responsable de cette destruction ?
Je ne sais même pas si c'est super utile que ça de les détruire mais quand même, si la liste d'article est bien gonflée et qu'on ne libère pas la mémoire, ça risque de pas aimer au bout d'un moment ?
J'espère que ma question ne paraîtra pas idiote à vos yeux de chevronnés du C++ !
Merci d'avance.
Partager