Ich lese C # Design Pattern Essentials . Ich lese gerade über das Iteratormuster.
Ich verstehe die Implementierung vollständig, verstehe aber nicht die Wichtigkeit oder sehe keinen Anwendungsfall. In dem Buch wird ein Beispiel gegeben, in dem jemand eine Liste von Objekten abrufen muss. Sie hätten dies tun können, indem sie ein öffentliches Eigentum, wie zum Beispiel IList<T>oder ein Array.
Das Buch schreibt
Das Problem dabei ist, dass die interne Repräsentation in beiden Klassen externen Projekten ausgesetzt war.
Was ist die interne Darstellung? Die Tatsache, dass es einarray oder IList<T>? Ich verstehe wirklich nicht, warum dies für den Verbraucher (den Programmierer, der dies nennt) eine schlechte Sache ist, zu wissen ...
Das Buch sagt dann, dass dieses Muster funktioniert, indem es sein herausstellt GetEnumerator Funktion , so dass wir GetEnumerator()die 'Liste' auf diese Weise aufrufen und aufdecken können.
Ich gehe davon aus, dass dieses Muster (wie alle) in bestimmten Situationen einen Platz hat, aber ich sehe nicht, wo und wann.
Fdas gibt mir Wissen (Methoden) von a, bund c. Alles ist gut und schön, es kann viele Dinge geben, die anders sind, aber nur Ffür mich. Stellen Sie sich die Methode als "Einschränkungen" oder Klauseln eines Vertrags vor F, zu denen Klassen verpflichtet sind. Nehmen wir an, wir fügen ein dzwar hinzu, weil wir es brauchen. Dies fügt eine zusätzliche Einschränkung hinzu. Jedes Mal, wenn wir dies tun, legen wir den Fs mehr und mehr auf . Letztendlich (im schlimmsten Fall) kann nur eine Sache eine sein, Falso können wir es genauso gut nicht haben. Und Fes gibt so viele Einschränkungen, dass es nur einen Weg gibt, dies zu tun.