Projeto de Sistemas de Software Trabalho de Padrões de Projeto

Slides:



Advertisements
Apresentações semelhantes
JAVA Orientação a Objetos
Advertisements

Padrão de Projeto Iterator
Classes Abstratas e Interfaces
Collections Marco Antonio, Arquiteto de Software – TJDF Atualizado Dezembro/2008.
Projeto de Sistemas de Software
Projeto de Sistemas de Software
Projeto de Sistemas de Software
Padrão de Projeto Interpreter
Kleinner Farias e Raphael do Vale
Padrão de Projeto Iterator
Orientação a Objetos: Modificador Final para Métodos e Classes
Herança, sobrecarga e ligação dinâmica zHerança zReferência super zSobrecarga de métodos zSobreposição zLigação dinâmica de métodos zfinal.
Eduardo Bezerra Padrões GoF Eduardo Bezerra
Walfredo Cirne walfredo.dsc.ufpb.br
Programação Concorrente
Wagner Santos C. de Jesus
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
CRIANDO OBJETOS EM JAVA
Concorrência em Java Threads em Java.
Threads: Introdução e Implementação
Tipos Agregados Homogêneos e Listas
Programação Orientada a Objetos com Java
Professor: Hyggo Almeida
C# Herança Sharp Shooters .NET Universidade Federal de Pernambuco Centro de Informática Recife, 23/09/2002 Autor: Marden Menezes Costa.
C# Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 23/09/2002 Autor: Marden Menezes Costa Propriedades.
Padrão de Projeto Visitor
JAVA Linguagem Ambiente de Desenvolvimento
Interfaces.
Atributos, Encapsulamento e Interface em Java
OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.
Padrão de Projeto Iterator
Estudo de Caso: um editor de documentos
Orientação a Objetos e Java Graduação em Ciência da Computação
Professora Lucélia Oliveira
Pilhas Profa. Nádia Félix.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
POO - I Prof.: Jean Carlo Mendes
Listas Simplesmente Encadeadas
Wagner Santos C. de Jesus
Programação Orientada a Objetos - Java
Implementação Orientada a Objetos – Aula 03
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Introdução às Java Threads
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Polimorfismo.
Curso de Linguagem Java
Coleções, Genéricos, Threads Marco Antonio. Collection Principais métodos da interface Collection.
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
Classes Abstratas e Interface
Aula Prática 1 Monitoria IP/CC (~if669). Roteiro 1.Polimorfismo 2.Superclasses Abstratas 3.Dúvidas 4.Exercício.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
Padrão de Projeto Iterator Projeto de Sistemas de Software Thiago Pinheiro de Araújo.
Módulo 9 Strings , Coleções e I/O
Aula Prática 5 05/05/2010. //Estrutura do método public int subtrair (int a, int b){ //Calcule a operação desejada. int resultado = a – b; //Retorne o.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
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.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: Iterator Professores Eduardo Bezerra –
1 Padrão: Iterador (Iterator) Tipo - “Object behavioral” Objetivo - acessar um agregado sem expor a representação Outros nomes - Cursor.
Coleções em Java (Parte 1)
Capítulo 4. Conjuntos  Introdução  Principais operações de conjuntos  Principais interfaces de conjuntos  A interface Collection  A interface Iterator.
1 Interface (o termo) » Interface (a palavra reservada): Java estendeu o conceito de interfaces à um nível ainda mais flexível que permite construir entidades.
Transcrição da apresentação:

Projeto de Sistemas de Software Trabalho de Padrões de Projeto Padrão Iterator Luiz Rodolfo Caldeira 0821374

Propósito do Padrão Prover um meio de acessar os elementos de uma coleção sequencialmente sem se preocupar com a implementação da coleção.

Motivação Uma coleção deve disponibilizar uma maneira de percorrer seus objetos, sem expor sua estrutura interna. Deve prover vários meios de ser percorrida. Poder ser percorrida concorrentemente. Mas não queremos escrever todos esses métodos na interface da coleção. Exemplo: Iterador de uma árvore Pré-orderm: raiz, árvore esquerda, árvore direita. Em ordem: árvore esquerda, raiz, árvore direita. Pós-ordem: árvore esquerda, árvore direita, raiz. A responsabilidade por iterar na coleção fica com o iterador: Cada coleção instância um iterador apropriado.

Aplicabilidade Acessar e percorrer o conteúdo de uma coleção sem se preocupar com sua representação interna. Prover diferentes formas de percorrer os elementos de coleções. Definir uma interface uniforme para percorrer elementos de uma coleção(polimorfismo).

Estrutura

Participantes Iterator IteratorImpl Collection CollectionImpl Define um interface para acessar e percorrer os elementos da coleção. IteratorImpl Implementa a interface Iterator Collection Define uma interface para criar um Iterator CollectionImpl Implementa a interface de criação de um Iterator para retornar um Iterator adequado para esta coleção. Agrupa objetos de um determinado tipo.

Colaborações O IteratorImpl mantém a referência para o objeto corrente da CollectionImpl e é capaz de saber qual o próximo objeto a ser acessado.

Conseqüências Variações nas formas de percorrer a coleção Para mudar a forma como os itens da coleção são percorridos basta mudar o iterador Mas a interface continua a mesma Simplifica a interface da coleção A interface necessária para percorrer a coleção fica no iterador Mais de uma iteração pode estar ativa ao mesmo tempo Como cada iterador mantém a informação de qual elemento é o corrente, mais de um iterador pode estar ativo ao mesmo tempo sobre uma coleção.

Exemplo de Código public interface Iterator<E>{ public void next(); public void first(); public boolean isDone(); public E current(); } public class InOrderTreeIterator<E extends Node> implements Iterator<E>{ private int currentIndex; private Vector<Node> vector; public InOrderTreeIterator( BSTree<E> tree ){ this.currentIndex = 0; ... public E current(){ return (E)this.vector. get(this.currentIndex); public void first(){ this.currentIndex = 0 ; } public boolean isDone(){ return this.currentIndex == this.vector.size(); public void next(){ this.currentIndex++;

Exemplo de Código public interface Tree<E extends Node>{ public Iterator<E> createIterator(); ... } public class BSTree<E extends Node> implements Tree<E>{ public Iterator<E>createIterator(){ return new InOrderTreeIterator<E>( this ); ... public static void main(String[] args) { Tree<Node> tree = new BSTree<Node>(); tree.insert( 5 ); tree.insert( 2 ); tree.insert( 6 ); tree.insert( 1 ); tree.insert( 4 ); Iterator<Node> iterator = tree.createIterator(); for(iterator.first(); !iterator.isDone(); iterator.next()) { System.out.println( iterator.current().getData() ); }

FIM Perguntas ?