Sappiamo che alcuni schemi di progettazione sono così utili che diventano funzionalità del linguaggio stesso.
Ad esempio, l'interfaccia IEnumerator
implementata da Array
oggetto.
Questo aiuta a separare l'iteratore dall'oggetto di raccolta. La rappresentazione interna dell'oggetto è incapsulata.
Il pattern: Pattern Iterator
Ho appena incontrato un'altra interfaccia IStructuralComparable
( msdn ) . Viene utilizzato per confrontare la struttura di due tipi di raccolta utilizzando StructuralComparisons
( msdn ) class.
L'intento di questa interfaccia sembra essere così:
My understanding is that it's used for collection like types, and encapsulates the structural part of the comparison, but leaves the comparison of the elements to a comparer passed in by the user. (link) (Got from the comments section of the question)
Si tratta dell'implementazione di un modello di progettazione familiare? Se sì, quale modello è?