Sto leggendo C # Design Pattern Essentials . Attualmente sto leggendo il modello iteratore.
Comprendo appieno come implementare, ma non capisco l'importanza o non vedo un caso d'uso. Nel libro viene fornito un esempio in cui qualcuno deve ottenere un elenco di oggetti. Avrebbero potuto farlo esponendo una proprietà pubblica, come IList<T>o un Array.
Il libro scrive
Il problema è che la rappresentazione interna in entrambe queste classi è stata esposta a progetti esterni.
Qual è la rappresentazione interna? Il fatto è un arrayo IList<T>? Davvero non capisco perché questa sia una brutta cosa per il consumatore (il programmatore lo chiama) per sapere ...
Il libro dice quindi che questo modello funziona esponendo la sua GetEnumeratorfunzione, quindi possiamo chiamare GetEnumerator()ed esporre la 'lista' in questo modo.
Presumo che questo schema abbia un posto (come tutti) in certe situazioni, ma non riesco a vedere dove e quando.
Fche mi dia conoscenza (metodi) di a, be c. Va tutto bene, ci possono essere molte cose diverse ma solo Fper me. Pensa al metodo come "vincoli" o clausole di un contratto che le Fclassi impegnano a fare. Supponiamo di aggiungere un dperò, perché ne abbiamo bisogno. Questo aggiunge un ulteriore vincolo, ogni volta che lo facciamo imponiamo sempre di più sulla Fs. Alla fine (nel peggiore dei casi) solo una cosa può essere una, Fquindi potremmo anche non averla. E Flimita così tanto che c'è solo un modo per farlo.