Filter Design Pattern.

Slides:



Advertisements
Apresentações semelhantes
Soluções elegantes para problemas recorrentes
Advertisements

Análise e Projeto Orientado a Objetos
Herança, Polimorfismo e Classes Abstratas em Java
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTERFACES Prof. Thiago Pereira Rique
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS CLASSES ABSTRATAS
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS ACESSO A BANCO DE DADOS COM O JDBC Prof. Thiago Pereira Rique
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
Design Patterns Interpreter
Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.
1 Introdução aos padrões de projeto (GoF) Conceitos preliminares –Mecanismos de herança –Princípio de Substituição de Liskov –Acoplamento concreto x Acoplamento.
Abstract Factory Intenção: fornecer uma interface comum para a criação de famílias de objetos relacionados ou dependentes, sem especificar suas classes.
Template Method Intenção: definir o esqueleto de um algoritmo em uma operação, postergando (delegando) a definição de alguns passos desse algoritmo para.
Padrões GoF – Factory Method
Polimorfismo e Classes Abstratas Profa
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Alexandre Parra Site: Os Pilares da OO em Java Alexandre Parra Site:
Linguagem de Programação II
MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP
Padrões para Atribuições de Responsabilidades
Documentação da Neptus Framework
Projeto da Camada de Domínio
Herança e Polimorfismo
Tecnologias para Internet
Sistemas Distribuídos
DIAGRAMA DE COMPONENTES
Polimorfismo em C#.
Diagrama de Classes e Colaboração
Aula prática 13 Orientação a Objetos – C++ Parte 1
Conceitos básicos de orientação a objetos
Nazareno Andrade (baseado no material de Hyggo Almeida)
Padrões de projeto detalhados Factory Method, Abstract Factory
Sobrecarga e Encapsulamento
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Estudo de Caso: um editor de documentos
Linguagem de Programação JAVA
Prof. Alexandre Monteiro Recife
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof
Programação Orientada à Objetos
SISTEMAS DISTRIBUIDOS Aula 4
Aula prática 14 Orientação a Objetos – C++ Parte 2
POO II JEAN CARLO MENDES
Interfaces e classes abstratas. Conceitos de Orientação a Objeto.
Classes Abstratas P. O. O. Prof. Ângela e Grace.
Equipe: Osias Carneiro, Anderson Soares, André Araújo
POO II JEAN CARLO MENDES
Decorator POO - Avançado.
Introdução Padrões de Projeto
Análise e Projeto de Sistemas
Paradigmas de Programação –Aula 7 Lab 2 Professores: Eduardo Mantovani Fábio Paula Santos.
Bruno Inojosa MCP .NET Framework
Factory.
WSDL Web Services Description Language. Tecnologias Relacionadas Web Services SOAP (Simple Object Access Protocol) HTTP (HyperText Markup Language) UDDI.
Conceitos do Cliente Funcionamento Básico do Cliente Como Clientes acessam e usam Objetos Distribúidos.
Objetos Distribuídos Frameworks Orientados a Objetos.
Jobson Ronan Padrões GoF Jobson Ronan
2 – Revisão de Programação Orientada a Objetos
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
4 CONCEITOS BÁSICOS EM POO Dilvan Moreira.  Objetos  Classes  Herança  Polimorfismo Lembrando: 4 Conceitos Básicos.
Prof.: Bruno Rafael de Oliveira Rodrigues. Herança Possibilita a uma classe usar campos ou métodos definidos em outra classe. Assim a classe pai possui.
Aula 5 – Padrão Decorator
Padrões de Projeto. O que são?  Soluções provenientes de diversos projetos e utilizados por diversos programadores;  Documentados em catálogos como.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
Engenharia de Software Orientada a Objetos Professor: Guilherme Timóteo Aula 3: – Modelagem de Classes (parte 2)
Padrões de Projeto de Criação Padrões de Projeto Orientados a Objetos Prof a. Danielle Martin Universidade de Mogi das Cruzes.
1. 2 Programação Orientada a Objetos Prof. Maurício Rodrigues de Morais
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Transcrição da apresentação:

Filter Design Pattern

Definição Filter é um padrão de projeto utilizado para análise e tratamento de dados. Com esse padrão é possível utilizar um ou mais objetos (filtros) que tratam ou operam um fluxo de dados de maneira específica, a fim de obter soluções genéricas (reutilizáveis).

Padrões Relacionados Possui alguns padrões relacionados: Decorator; Composite; Pipe;

Contexto Análise simples de fluxo de dados podem ser comum a vários programas. Uma maneira de conseguir flexibilidade é definir uma superclasse (Filter) genérica para Instanciar os objetos das subclasses.

Solução Através de uma combinação de classes abstratas e delegação, uma solução é realizada. O padrão Filter organiza as classes que dele participam como fonte de dados, sink(consumidores) de dados e filtros de dados. As classes de dados do Filter executam as operações de transformação e análise.

Formas Básicas Os fluxos de dados acontecendo quando um filtro pega os dados de um outro objeto fonte.

Participantes AbstractSource ConcreteSource Esta classe abstrata declara um método, indicado no diagrama como getData, que retorna os dados quando é chamado. ConcreteSource corresponde a qualquer subclasse concreta de AbstractSource que é o principal responsável pelo fornecimento de dados ao invés de transformar ou análisar dados.

Participantes AbstractSourceFilter ConcreteSourceFilter Superclasse das classes que transformam e analisam dados. Ela tem um construtor que recebe um argumento que é a instância da classe AbstractSource. Instâncias de uma classe AbstractSourceFilter delegam a busca de dados para o objeto AbstractSource passado para o seu construtor. ConcreteSourceFilter corresponde a qualquer subclasse concreta de AbstractSourceFilter. Subclasses de abstractSourceFilter devem estender o comportamento do método getData que herdam de AbstractSourceFilter para executar a transformação adequada ou analisar as operações.

Participantes AbstractSink Representao o cliente da nossa aplicação. Ao contrário dos objetos ConcreteSourceFilter, instâncias de classes abstract sink usam os dados sem passá-lo para outro objeto AbstractSourceFilter.

Vantagens As classes que implementam transformações comum de dados e analises são utilizadas em uma grande variedade de programas. Deve ser possível combinar a dinâmica de análise de dados e objetos de transformação, ligando-os juntos. O uso de objetos de transformação e análise deve ser transparente para outros objetos.

Usos comuns dos filtros Conversão de dados para um formato especifico. Adição de informações às mensagens recebidas. Filtragem de dados. Lotes, agregando 10 mensagens recebidas e enviá-las juntas em uma única saída por exemplo. Concatenando os elementos de dados de mensagens relacionadas em uma única mensagem de saída

EXEMPLO DE APLICAÇÃO Autenticação de Usuário (WEB). O exemplo da aplicação tem o objetivo de fazer com que dois usuários se autentiquem no sistema, um como administrador e outro como usuário padrão. Após autenticação o sistema utilizará filtros (utilização do padrão Filter) de controle para definir o tipo de acesso que cada usuário terá no sistema. O usuário administrador terá acesso total e o usuário padrão terá acesso restrito. OBS: O arquivo fonte desta aplicação se encontra no arquivo NetBeans_Exemplo_Pratica.rar.

EXEMPLO DE APLICAÇÃO

Prática Com base nos conhecimentos obtidos do padrão Filter e dado o diagrama de classe abaixo e as classes X, Y implemente uma solução que busque do arquivo e imprima o login de todos os usuários e imprima uma lista de todos os e-mails que serão desativados por não serem acessados a mais de 20 dias. Obs: Deverá ser colocado na classe ArquivoeIp.java o caminho para o arquivo input.txt, que contém os dados a serem lidos. O programa devera imprimir a seguinte saída:   Login de todos os usuários:  E-mails que serão desativados: - nome@gmail.com - outro@hotmail.com

Diagrama da Prática

Dúvidas? CONTATOS leoteck@gmail.com rafaelljj@gmail.com vitorssilva@yahoo.com.br

REFERÊNCIAS http://msdn.microsoft.com/en-us/library/ff647419.aspx http://tutorials.freeskills.com/professional-xml-part-4-s http://www.eaipatterns.com/PipesAndFilters.html ome-sax-design-patterns.htm http://www.batebyte.pr.gov.br/modules/conteudo/conteudo.php?conteudo=1049