Je lis les éléments essentiels du modèle de conception C # . Je lis actuellement sur le modèle d'itérateur.
Je comprends parfaitement comment mettre en œuvre, mais je ne comprends pas l'importance ou voir un cas d'utilisation. Dans le livre, un exemple est donné où quelqu'un a besoin d'obtenir une liste d'objets. Ils auraient pu le faire en exposant une propriété publique, comme IList<T>ou un Array.
Le livre écrit
Le problème est que la représentation interne dans ces deux classes a été exposée à des projets extérieurs.
Quelle est la représentation interne? Le fait que ce soit un arrayou IList<T>? Je ne comprends vraiment pas pourquoi c'est une mauvaise chose pour le consommateur (le programmeur qui l'appelle) de savoir ...
Le livre dit ensuite que ce modèle fonctionne en exposant sa GetEnumeratorfonction, afin que nous puissions appeler GetEnumerator()et exposer la «liste» de cette façon.
Je suppose que ces modèles ont une place (comme tous) dans certaines situations, mais je ne vois pas où et quand.
Fqui me donne des connaissances (méthodes) de a, bet c. Tout va bien et bien, il peut y avoir beaucoup de choses différentes mais juste Fpour moi. Considérez la méthode comme des «contraintes» ou des clauses d'un contrat qui Fengage les classes à faire. Supposons que nous ajoutions un dbien, car nous en avons besoin. Cela ajoute une contrainte supplémentaire, chaque fois que nous faisons cela, nous imposons de plus en plus sur le Fs. Finalement (le pire des cas), une seule chose peut être un Fdonc nous pouvons aussi bien ne pas l'avoir. Et Fcontraint tellement il n'y a qu'une seule façon de le faire.