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 array
ou 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 GetEnumerator
fonction, 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.
F
qui me donne des connaissances (méthodes) de a
, b
et c
. Tout va bien et bien, il peut y avoir beaucoup de choses différentes mais juste F
pour moi. Considérez la méthode comme des «contraintes» ou des clauses d'un contrat qui F
engage les classes à faire. Supposons que nous ajoutions un d
bien, 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 F
s. Finalement (le pire des cas), une seule chose peut être un F
donc nous pouvons aussi bien ne pas l'avoir. Et F
contraint tellement il n'y a qu'une seule façon de le faire.