A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Padrão de Projeto Iterator

Apresentações semelhantes


Apresentação em tema: "Padrão de Projeto Iterator"— Transcrição da apresentação:

1 Padrão de Projeto Iterator
Projeto de Sistemas de Software Thiago Pinheiro de Araújo

2 Iterator Motivação Permitir uma iteração por todos os elementos de um agregado, independente da estrutura de armazenamento. Fornecer uma forma de acesso genérica aos elementos de um agregado sem expor sua representação interna. Fazer duas iterações concorrentes em um agregado, cuja interface pode só permitir uma única por vez. Ex: Arvore binária. © LES/PUC-Rio

3 Iterator Propósito Padronizar a iteração sobre os elementos de agregados. Permitir modificações na estrutura interna do agregado sem afetar quem faz uso dele apenas para iteração. Permitir a troca do tipo do agregado sem afetar quem faz uso dele apenas para iteração. © LES/PUC-Rio

4 Iterator Aplicabilidade
Prover interface única de iteração sobre agregados. Onde existe ganho em usar um objeto, obtido através do padrão de projeto Factory, responsável pela iteração sobre os elementos do agregado. © LES/PUC-Rio

5 Iterator Estrutura © LES/PUC-Rio

6 Iterator Participantes IAgregate ConcreteAgregate Iterator
Interface que especifica a fábrica de iteradores. ConcreteAgregate Armazena os elementos efetivamente em uma estrutura de interesse. Define o método de criação do seu iterador. Iterator Interface que define primitivas de controle sobre a iteração dos elementos. ConcreteIterator Implementa as primitivas de controle sobre a iteração. © LES/PUC-Rio

7 Iterator Colaborações O usuário do Agregado pede um iterator.
O iterator mantém a posição corrente durante a iteração sobre os elementos do agregado. Para cada passo na iteração, o usuário pode realizar operações sobre o elemento. © LES/PUC-Rio

8 Iterator Conseqüências
Generalidade na iteração sobre os elementos de um agregado. Possibilidade de realizar múltiplas iterações concorrentes sobre um agregado. Troca da implementação do agregado sem afetar quem faz iteração sobre seus elementos. © LES/PUC-Rio

9 Iterator © LES/PUC-Rio

10 Iterator Bibliografia
[1] Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software, 2st edition, Addison-Wesley Professional Computing Series, 1998. © LES/PUC-Rio

11 Fim!


Carregar ppt "Padrão de Projeto Iterator"

Apresentações semelhantes


Anúncios Google