SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante a Padrao de projeto iterator

Apresentação Introdução Design Patterns
Apresentação Introdução Design PatternsApresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
Lucas Simões Maistro
 
Prototype1 - thiago
Prototype1 - thiagoPrototype1 - thiago
Prototype1 - thiago
tceufrasio1
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
elliando dias
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1
Erisvaldo Junior
 
Arquitetura mix thiagoboufleuhr
Arquitetura mix thiagoboufleuhrArquitetura mix thiagoboufleuhr
Arquitetura mix thiagoboufleuhr
Thiago Boufleuhr
 
[NetPonto] Entity Framework 4 Code-First
[NetPonto] Entity Framework 4 Code-First[NetPonto] Entity Framework 4 Code-First
[NetPonto] Entity Framework 4 Code-First
Vitor Tomaz
 
2009_2Sem.POOII.Ciencia Aula2 Revisao De Classes E Objetos
2009_2Sem.POOII.Ciencia Aula2   Revisao De Classes E Objetos2009_2Sem.POOII.Ciencia Aula2   Revisao De Classes E Objetos
2009_2Sem.POOII.Ciencia Aula2 Revisao De Classes E Objetos
guest9b4c7f
 

Semelhante a Padrao de projeto iterator (20)

Apresentação Introdução Design Patterns
Apresentação Introdução Design PatternsApresentação Introdução Design Patterns
Apresentação Introdução Design Patterns
 
Prototype1 - thiago
Prototype1 - thiagoPrototype1 - thiago
Prototype1 - thiago
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores Android
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
 
Travalho versao final
Travalho versao finalTravalho versao final
Travalho versao final
 
Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1Desenvolvimento iOS - Aula 1
Desenvolvimento iOS - Aula 1
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1
 
Intro oca,ocp 6 & 7, oo basics
Intro   oca,ocp 6 & 7, oo basicsIntro   oca,ocp 6 & 7, oo basics
Intro oca,ocp 6 & 7, oo basics
 
Arquitetura mix thiagoboufleuhr
Arquitetura mix thiagoboufleuhrArquitetura mix thiagoboufleuhr
Arquitetura mix thiagoboufleuhr
 
Patterns
PatternsPatterns
Patterns
 
Java7
Java7Java7
Java7
 
Prototype
PrototypePrototype
Prototype
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
 
Entity Framework 4 Code-First
Entity Framework 4 Code-FirstEntity Framework 4 Code-First
Entity Framework 4 Code-First
 
[NetPonto] Entity Framework 4 Code-First
[NetPonto] Entity Framework 4 Code-First[NetPonto] Entity Framework 4 Code-First
[NetPonto] Entity Framework 4 Code-First
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
2009_2Sem.POOII.Ciencia Aula2 Revisao De Classes E Objetos
2009_2Sem.POOII.Ciencia Aula2   Revisao De Classes E Objetos2009_2Sem.POOII.Ciencia Aula2   Revisao De Classes E Objetos
2009_2Sem.POOII.Ciencia Aula2 Revisao De Classes E Objetos
 
Quick reference
Quick referenceQuick reference
Quick reference
 
3.1 orientação objetos
3.1  orientação objetos3.1  orientação objetos
3.1 orientação objetos
 
Padrão de Projetos singleton
Padrão de Projetos singletonPadrão de Projetos singleton
Padrão de Projetos singleton
 

Último

Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
AntonioVieira539017
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
Autonoma
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 

Último (20)

Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
Poesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptxPoesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptx
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
Renascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRenascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDF
 

Padrao de projeto iterator

  • 1. 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
  • 2. 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.
  • 3. Padrão de Projeto - Comportamental - Iterator 3
  • 4.  Um objeto intermediário (iterator) é usado entre o cliente e a coleção de objetos. Padrão de Projeto - Comportamental - Iterator 4
  • 5. 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
  • 6. 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
  • 7. 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.
  • 8. 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
  • 9. 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
  • 10. Estrutura Padrão de Projeto - Comportamental - Iterator 10
  • 11. 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
  • 12.  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
  • 13. 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
  • 14. 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