viernes, 29 de mayo de 2009

Iterator

Propósito
Suministrar una manera lógica de acceder de forma secuencial a los elementos existentes en una colección sin importar el tipo de colección.
Aplicabilidad
Use el patrón Iterator cuando necesite admitir el recorrido de muchas colecciones, dejando que diversos clientes indaguen al mismo tiempo por dicha colección, cuando necesite aportar una manera análoga, logia e independiente de su implementación paráis poder recorrer la colección.
Implementación
El patrón Iterator necesita de los siguientes elementos:
•    Iterator: En esta interfaz se definen los métodos estándar de iteración.
•    ConcreteIterator: Clases que implementan la interfaz Iterator. Estas clases referencian la colección subyacente.
•    Aggregate: Esta interfaz define un método de fabricación para generar un iterador.
•    ConcreteAggregate: Esta clase implementa la interfaz Aggregate, construyendo objetos ConcreteIterator bajo demanda.
Ventajas e Inconvenientes
Define una interfaz única para recorrer una colección aportándole dinamismo al proceso, permiten tener muchos puntos de navegación para la misma colección.
El mayor inconveniente es que crean la ilusión de estructuras con orden o en otros casos con desorden.
Patrones Relacionados
•    Factory Method: En las clases que simbolizan colecciones comúnmente se define un método fábrica para así crear el iterador.
•    Visitor: Cuando este patrón se usa en conjuntos de objetos, casi siempre se usa un iterador para recorrer los elementos. 

No hay comentarios:

Publicar un comentario