April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: Iterator Professores Eduardo Bezerra –

Slides:



Advertisements
Apresentações semelhantes
Padrão de Projeto Iterator
Advertisements

Collections Marco Antonio, Arquiteto de Software – TJDF Atualizado Dezembro/2008.
Design Patterns Patrícia Mateus nº3343 Carla Guerreiro nº3157
Projeto de Sistemas de Software Trabalho de Padrões de Projeto
Projeto de Sistemas de Software
Padrões de Projeto Prototype.
Padrão de Projeto Iterator
Prof. João Bosco M. Sobral
April 05 Prof. Ismael H. F. Santos - 1 Programação Banco de Dados em Java Prof. Ismael H F Santos.
Módulo III Padrões GOF: Composite
April 05 Prof. Ismael H. F. Santos - 1 Programação Web com Java Prof. Ismael H F Santos.
Programação OO em Java Intermediário
Módulo III Padrões GOF-VI: MVC
April 05 Prof. Ismael H. F. Santos - 1 Frameworks e Padrões de SW Prof. Ismael H F Santos.
April 05 Prof. Ismael H. F. Santos - 1 Programação OO em Java Básico Prof. Ismael H F Santos.
April 05 Prof. Ismael H. F. Santos - 1 Módulo VI – J ava Standard Template Library (JSTL) Prof. Ismael H F Santos.
Módulo III Padrões GOF: Command
April 05 Prof. Ismael H. F. Santos - 1 Modulo II – Tópicos em Java – Relatórios Prof. Ismael H F Santos.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF:FactoryMethod Professores Eduardo Bezerra –
Padrões GoF - Façade.
Eduardo Bezerra Padrões GoF Eduardo Bezerra
April 05 Prof. Ismael H. F. Santos - 1 Módulo II Introdução a XML DTD Prof. Ismael H F Santos.
Padrões GoF – Factory Method
Eduardo Bezerra Padrões GoF Eduardo Bezerra
Modulo I Padrões GRASP Professores
April 05 Prof. Ismael H. F. Santos - 1 Módulo II XML Processing: XSLT, SAX e DOM Prof. Ismael H F Santos.
Módulo I Padrões de Projeto GoF
Walfredo Cirne walfredo.dsc.ufpb.br
Padrão de Projeto Chain of Responsability e Template Method
Curso de extensão em Desenvolvimento Web
Professor: Hyggo Almeida
Fundamentos da Engenharia de Software
April 05 Prof. Ismael H. F. Santos - 1 Módulo IVb - JSP Prof. Ismael H F Santos.
Módulo III Padrões GOF Professores
Padrão de Projeto Iterator
Adriano S. Castro André Abdalla
Introdução Eduardo Figueiredo 04 de Março de 2010 POOAula 01 ou
Coleções, Genéricos, Threads Marco Antonio. Collection Principais métodos da interface Collection.
Introdução Padrões de Projeto
April 05 Prof. Ismael H. F. Santos - 1 Módulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra –
Padrão de Projeto Iterator Projeto de Sistemas de Software Thiago Pinheiro de Araújo.
Coleções em Java - Parte 2
Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: Singleton, Professores Eduardo Bezerra –
Padrões de Projeto Abstract Factory.
April 05 Prof. Ismael H. F. Santos - 1 Modulo II Framework of Integrated Test - Fit Professor Ismael H F Santos –
Factory.
April 05 Prof. Ismael H. F. Santos - 1 Modulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra –
POO - I PROF.: JEAN CARLO MENDES
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: Memento Professores Eduardo Bezerra –
April 05 Prof. Ismael H. F. Santos - 1 Modulo IV Padrões Core J2EE Professores Eduardo Bezerra –
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: AbstractMethod Professores Eduardo Bezerra –
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: Strategy Professores Eduardo Bezerra –
Design Patterns A adoção dos padrões terá um efeito profundo e duradouro sobre a forma de escrevermos programas Ward Cunningham e Ralph Johnson.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: Observer Professores Eduardo Bezerra –
April 05 Prof. Ismael H. F. Santos - 1 Módulo V- Modelo MVC-Web Prof. Ismael H F Santos.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: State Professores Eduardo Bezerra –
1 Padrão: Iterador (Iterator) Tipo - “Object behavioral” Objetivo - acessar um agregado sem expor a representação Outros nomes - Cursor.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
April 05 Prof. Ismael H. F. Santos - 1 Modulo II – Tópicos em Java - Ant Prof. Ismael H F Santos.
April 05 Prof. Ismael H. F. Santos - 1 Modulo II – Tópicos em Java – Generics Prof. Ismael H F Santos.
April 05 Prof. Ismael H. F. Santos - 1 Modulo V Frameworks Professores Eduardo Bezerra –
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF-II: Iterator e Composite Professores Eduardo Bezerra –
Padrões de Projetos Professora Lucélia. Conceitos É uma solução conhecida para um problema comum São técnicas que nos dão uma boa solução para determinados.
Padrões de Projetos Orientados a Objetos I Wolley W. Silva.
Coleções em Java (Parte 1)
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Padrões de Projeto de Criação Padrões de Projeto Orientados a Objetos Prof a. Danielle Martin Universidade de Mogi das Cruzes.
Introdução a Padrões de Projeto Padrões de Projeto Orientado a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes.
Introdução a Padrões de Projeto Padrões de Projeto Orientado a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes.
Transcrição da apresentação:

April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: Iterator Professores Eduardo Bezerra – Ismael H F Santos –

Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 2 Ementa Padrões GOF Iterator

Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 3 Eric Gamma, et ali, Padrões de Projeto, Ed Bookman Martin Fowler, Analysis Patterns - Reusable Object Models, Addison-Wesley,1997 Martin Fowler, Refatoração - Aperfeiçoando o projeto de código existente, Ed Bookman Bibliografia

Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 4 Livros Core Java 2, Cay S. Horstmann, Gary Cornell Volume 1 (Fundamentos) Volume 2 (Características Avançadas) Java: Como Programar, Deitel & Deitel Thinking in Patterns with JAVA, Bruce Eckel Gratuito.

Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 5 Iterator POO-Java

Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 6 Iterator Toda cole ç ão possui uma representa ç ão interna para o armazenamento e organiza ç ão de seus elementos. Por outro lado, essa coleção deve permitir que seus elementos sejam acessados sem que sua estrutura interna seja exposta. De uma maneira geral, pode-se desejar que estes elementos sejam percorridos de várias maneira, sem no entanto ter que modificar a interface da coleção em função do tipo de varredura desejado. de frente para trás, vice-versa, ou mesmo em ordem aleatória.

Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 7 Iterator O padrão Iterator permite descrever uma forma de percorrer os elementos de uma cole ç ão sem violar o encapsulamento dessa cole ç ão. Inten ç ão: iterar sobre (percorrer seq ü encialmente) uma cole ç ão de objetos sem expor sua representa ç ão. Obedecer o princ í pio do encapsulamento

Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 8 Iterator Solu ç ão: um objeto intermedi á rio (iterator) é usado entre o cliente e a cole ç ão de objetos. Este objeto conhece a estrutura interna da cole ç ão a ser percorrida, e apresenta uma interface para percorrer tal estrutura. Esta interface é independente dessa estrutura interna. Os clientes que desejam percorrer a cole ç ão utilizam a interface do objeto intermedi á rio, em vez de se comunicarem diretamente com a cole ç ão de objetos.

Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 9 Iterator Requisitos de um iterador Um modo de localizar um elemento espec í fico da cole ç ão, tal como o primeiro elemento. Um modo de obter acesso ao elemento atual. Um modo de obter o pr ó ximo elemento. Um modo de indicar que não h á mais elementos a percorrer. Exemplo em Java As classes List, Set e Sorted são subclasses de Collection, e herdam um m é todo iterator() que retorna um objeto iterador. O objeto Iterator possui m é todos hasNext() e next().

Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 10 Iterator (exemplo) // ICollection.java // interface para obtenção de Iterator para coleções public interface ICollection { // obtenção de um Iterator public IIterator getIterator(); // determina existência de um elemento public boolean has(Object object); // adição de um elemento public boolean add(Object object); // remoção de um elemento public boolean remove(Object object); // remoção de todos os elementos public void removeAll(); }

Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 11 Iterator (exemplo) // IIterator.java public interface IIterator { // verifica a existência de um próximo elemento public boolean hasNext(); // retorna o próximo elemento public Object next(); }

Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 12 Iterator (estrutura)

Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 13 Iterator (participantes) Iterator Define um interface para o acesso e varredura; ConcreteIterator Implementa a interface do Iterator; Mantém referência (cursor) ao objeto que está sendo percorrido, podendo calcular qual o elemento seguinte. Aggregate Define um interface para a criação do objeto Iterator; ConcreteAggregate Implementa o método da interface que retorna uma instância do ConcreteIterator.

Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 14 Iterator (aplicabilidade) O uso do padrão Iterator se aplica quando se quer: acessar o conteúdo de objeto agregados sem expor sua representação interna; dar suporte a mais de uma maneira de percorrer a lista; prover interface única para percorrer estruturas agregadas diferentes.

Julho 06 Prof(s). Eduardo Bezerra & Ismael H. F. Santos 15 Iterator (conseqüências) Mant é m separadas a representa ç ão interna e a responsabilidade de navega ç ão pelas partes. O iterador conhece a estrutura interna das partes, mas os clientes do iterador não conhecem. Move da cole ç ão de objetos para o objeto iterator a responsabilidade de acesso e varredura da cole ç ão. A coleção ainda é responsável por criar seus próprios iteradores e o faz através do padrão “Factory Method”. H á a possibilidade de utilizar mais de um iterador simultaneamente. D á suporte a m ú ltiplas maneiras de percorrer a cole ç ão e, se necess á rio, essas varreduras podem ocorrer ao mesmo tempo.