Lorsque vous traitez de grandes collections, laquelle des approches suivantes est la meilleure?C#: objets simples et complexes et utilisation de la mémoire
Classe SimpleObject avec uniquement des champs/propriétés et classe SimpleObjectController qui contient toutes les implémentations de méthode requises par SimpleObject. Au moment de l'exécution, je construis une collection de SimpleObjects, instancie un SimpleObjectController et appelle ses méthodes, passant le SimpleObject avec lequel je veux travailler.
ou
classe "ComplexObject" qui regroupe les SimpleObject et SimpleObjectController dans l'approche traditionnelle OO. Au moment de l'exécution, j'ai une collection de ComplexObjects, parcourez-les, appelez leurs méthodes selon les besoins.
Il m'a été suggéré que la première approche est préférable en termes d'utilisation de la mémoire car tout le code de poids lourd est seulement dans un objet au lieu de chacun dans la collection. Ma compréhension était que si nous avions 1000 de ces objets dans une collection, cela ne signifie pas qu'il y a 1000 implémentations de la même méthode en mémoire. Il y aurait 1000 instances de données, mais elles partageraient l'instance de code (segment de code x86 & segment de données?). Il semble également aller à l'encontre des principes généraux de l'OO et de l'encapsulation.