Estou lendo C # Design Pattern Essentials . Atualmente, estou lendo sobre o padrão do iterador.
Compreendo perfeitamente como implementar, mas não entendo a importância ou vejo um caso de uso. No livro, é apresentado um exemplo em que alguém precisa obter uma lista de objetos. Eles poderiam ter feito isso expondo uma propriedade pública, como IList<T>ou Array.
O livro escreve
O problema é que a representação interna em ambas as classes foi exposta a projetos externos.
Qual é a representação interna? O fato de ser um arrayou IList<T>? Eu realmente não entendo por que isso é uma coisa ruim para o consumidor (o programador chamando isso) saber ...
O livro então diz que esse padrão funciona expondo sua GetEnumeratorfunção, para que possamos chamar GetEnumerator()e expor a 'lista' dessa maneira.
Presumo que esses padrões tenham um lugar (como todos) em determinadas situações, mas não consigo ver onde e quando.
Fque me dê conhecimento (métodos) de a, be c. Tudo está bem, pode haver muitas coisas diferentes, mas são apenas Fpara mim. Pense no método como "restrições" ou cláusulas de um contrato que as Fclasses comprometam a fazer. Suponha que adicionemos um dporém, porque precisamos dele. Isso adiciona uma restrição adicional, cada vez que fazemos isso, impomos mais e mais aos Fs. Eventualmente (na pior das hipóteses), apenas uma coisa pode ser uma, Fentão podemos também não tê-la. E Frestringe tanto que há apenas uma maneira de fazê-lo.