• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Padr+úo de projeto iterator
 

Padr+úo de projeto iterator

on

  • 489 views

 

Statistics

Views

Total Views
489
Views on SlideShare
489
Embed Views
0

Actions

Likes
0
Downloads
7
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Padr+úo de projeto iterator Padr+úo de projeto iterator Presentation Transcript

    • Padrão de Projeto Iterator Antonio Álvaro Oliveira da Silva Instituto Federal de Educação, Ciência e Tecnologia - IFCE campus Crato Programação Orientada a Objetos II
    • Objetivo  Disponibilizar uma forma de acesso sequencial aos elementos de um agregado sem expor a sua representação subjacente. Padrão de Projeto - Comportamental - Iterator 2 Intenção: iterar sobre uma coleção de objetos sem expor sua representação. Obedecer o princípio do encapsulamento.
    • Padrão de Projeto - Comportamental - Iterator 3
    •  Um objeto intermediário (iterator) é usado entre o cliente e a coleção de objetos. Padrão de Projeto - Comportamental - Iterator 4
    • Motivação  Deve-se poder percorrer uma lista encadeada, por exemplo, sem conhecer sua estrutura interna.  Isolar o uso de uma coleção (estrutura de dados) de sua representação interna, de forma a poder mudar a estrutura sem afetar quem a usa.  Para determinadas estruturas, pode haver formas diferentes de caminhamento encapsuláveis.  Podem existir diferentes varreduras simultâneas. Padrão de Projeto - Comportamental - Iterator 5
    • Exemplos de Iterador  Árvore pode ser caminhada "em ordem", "em pós-ordem” e em "pré- ordem" . Árvore pode ter 3 tipos de Iteradores Específicos:  Escolhendo o iterador escolhemos a forma de percorrer a árvore.  Iterador com filtro  Só retorna certos elementos da coleção.  A idéia do Iterador é retirar da coleção a responsabilidade de acessar e caminhar por seus elementos  Essa responsabilidade é delegada a um novo objeto separado – o Iterator. Padrão de Projeto - Comportamental - Iterator 6
    • Como criar um Iterador?  Não podemos usar new de uma classe concreta diretamente, pois o iterador a ser criado depende da coleção a ser varrida.  Iterdor it = new Iterador(colecao);  Solução: A coleção tem um Factory Method para criar um iterador. Iterador it = colecao.criarIterador(); Padrão de Projeto - Comportamental - Iterator 7 Quando usar o Iterador?  Para navegar em uma coleção elemento por elemento.
    • Aplicabilidade  Para acessar o conteúdo de uma coleção sem expor suas representação interna.  Para suportar múltiplas formas de caminhamento.  Usando iteradores específicos .  Para prover uma interface única para varrer coleções diferentes.  Isto é, para suportar uma iteração polimórfica . Padrão de Projeto - Comportamental - Iterator 8
    • Iterador  Qual a diferença entre: for (int i = 0; i < c.getSize(); i++) System.out.print(c.get(i));  E: Iterator it = c.iterator(); // Iterador Generico while (it.hasNext()) System.out.print(it.next() + " "); Padrão de Projeto - Comportamental - Iterator 9
    • Estrutura Padrão de Projeto - Comportamental - Iterator 10
    • Propriedades  Iterador • Define uma interface para acessar e percorrer os elementos.  IteradorConcreto • Implementa a interface de Iterador. • Mantém o controle da posição corrente no percurso do agregado.  Agregado • Define uma interface para criação de um objeto Iterador.  AgregadoConcreto • Implementa a interface de criação do Iterator para retornar uma instancia do IteradorConcreto apropriado. Padrão de Projeto - Comportamental - Iterator 11
    •  O IteradorConcreto mantém uma referência para o elemento atual do agregado e é capaz de calcular o próximo elemento da varredura. Padrão de Projeto - Comportamental - Iterator 12
    • Consequências  Suporta variações na varredura do agregado.  Simplificam a interface do agregado.  Suportam diferentes varreduras simultâneas. Padrão de Projeto - Comportamental - Iterator 13
    • Detalhes da implementação  Iteradores internos versus iteradores externos  Operadores do iterador  Pode permitir ou não andar para trás, pular posições, etc.  Iteradores nulos são interessantes para prover condições limites. Padrão de Projeto - Comportamental - Iterator 14