Filter - PowerPoint PPT Presentation

About This Presentation
Title:

Filter

Description:

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 ... – PowerPoint PPT presentation

Number of Views:68
Avg rating:3.0/5.0
Slides: 18
Provided by: leop91
Category:
Tags: filter

less

Transcript and Presenter's Notes

Title: Filter


1
Filter
  • Design Pattern

2
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).

3
Padrões Relacionados
  • Possui alguns padrões relacionados
  • Decorator
  • Composite
  • Pipe

4
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.

5
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.

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

7
Participantes
  • AbstractSource
  • 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.

8
Participantes
  • AbstractSourceFilter
  • 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.

9
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 AbstractSourceFilte
    r.

10
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.

11
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

12
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.

13
EXEMPLO DE APLICAÇÃO
14
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_at_gmail.com
  • - outro_at_hotmail.com
  •  

15
Diagrama da Prática
16
Dúvidas?
  • CONTATOS
  • leoteck_at_gmail.com
  • rafaelljj_at_gmail.com
  • vitorssilva_at_yahoo.com.br

17
REFERÊNCIAS
  • http//msdn.microsoft.com/en-us/library/ff647419.a
    spx
  • http//tutorials.freeskills.com/professional-xml-p
    art-4-s
  • http//www.eaipatterns.com/PipesAndFilters.html
    ome-sax-design-patterns.htm
  • http//www.batebyte.pr.gov.br/modules/conteudo/con
    teudo.php?conteudo1049
Write a Comment
User Comments (0)
About PowerShow.com