Filter Design Pattern. Definição Filter é um padrão de projeto utilizado para análise e...

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

of 17

  • date post

    22-Apr-2015
  • Category

    Documents

  • view

    106
  • download

    2

Embed Size (px)

Transcript of Filter Design Pattern. Definição Filter é um padrão de projeto utilizado para análise e...

  • Slide 1
  • Filter Design Pattern
  • Slide 2
  • Definio Filter um padro de projeto utilizado para anlise e tratamento de dados. Com esse padro possvel utilizar um ou mais objetos (filtros) que tratam ou operam um fluxo de dados de maneira especfica, a fim de obter solues genricas (reutilizveis).
  • Slide 3
  • Padres Relacionados Possui alguns padres relacionados: Decorator; Composite; Pipe;
  • Slide 4
  • Contexto Anlise simples de fluxo de dados podem ser comum a vrios programas. Uma maneira de conseguir flexibilidade definir uma superclasse (Filter) genrica para Instanciar os objetos das subclasses.
  • Slide 5
  • Soluo Atravs de uma combinao de classes abstratas e delegao, uma soluo realizada. O padro 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 operaes de transformao e anlise.
  • Slide 6
  • Formas Bsicas Os fluxos de dados acontecendo quando um filtro pega os dados de um outro objeto fonte.
  • Slide 7
  • Participantes AbstractSource Esta classe abstrata declara um mtodo, indicado no diagrama como getData, que retorna os dados quando chamado. ConcreteSource corresponde a qualquer subclasse concreta de AbstractSource que o principal responsvel pelo fornecimento de dados ao invs de transformar ou anlisar dados.
  • Slide 8
  • Participantes AbstractSourceFilter Superclasse das classes que transformam e analisam dados. Ela tem um construtor que recebe um argumento que a instncia da classe AbstractSource. Instncias 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 mtodo getData que herdam de AbstractSourceFilter para executar a transformao adequada ou analisar as operaes.
  • Slide 9
  • Participantes AbstractSink Representao o cliente da nossa aplicao. Ao contrrio dos objetos ConcreteSourceFilter, instncias de classes abstract sink usam os dados sem pass-lo para outro objeto AbstractSourceFilter.
  • Slide 10
  • Vantagens As classes que implementam transformaes comum de dados e analises so utilizadas em uma grande variedade de programas. Deve ser possvel combinar a dinmica de anlise de dados e objetos de transformao, ligando-os juntos. O uso de objetos de transformao e anlise deve ser transparente para outros objetos.
  • Slide 11
  • Usos comuns dos filtros Converso de dados para um formato especifico. Adio de informaes s mensagens recebidas. Filtragem de dados. Lotes, agregando 10 mensagens recebidas e envi-las juntas em uma nica sada por exemplo. Concatenando os elementos de dados de mensagens relacionadas em uma nica mensagem de sada
  • Slide 12
  • EXEMPLO DE APLICAO Autenticao de Usurio (WEB). O exemplo da aplicao tem o objetivo de fazer com que dois usurios se autentiquem no sistema, um como administrador e outro como usurio padro. Aps autenticao o sistema utilizar filtros (utilizao do padro Filter) de controle para definir o tipo de acesso que cada usurio ter no sistema. O usurio administrador ter acesso total e o usurio padro ter acesso restrito. OBS: O arquivo fonte desta aplicao se encontra no arquivo NetBeans_Exemplo_Pratica.rar.
  • Slide 13
  • EXEMPLO DE APLICAO
  • Slide 14
  • Prtica Com base nos conhecimentos obtidos do padro Filter e dado o diagrama de classe abaixo e as classes X, Y implemente uma soluo que busque do arquivo e imprima o login de todos os usurios e imprima uma lista de todos os e-mails que sero desativados por no serem acessados a mais de 20 dias. Obs: Dever ser colocado na classe ArquivoeIp.java o caminho para o arquivo input.txt, que contm os dados a serem lidos. O programa devera imprimir a seguinte sada: Login de todos os usurios: E-mails que sero desativados: - nome@gmail.com - outro@hotmail.com
  • Slide 15
  • Diagrama da Prtica
  • Slide 16
  • Dvidas? CONTATOS leoteck@gmail.com rafaelljj@gmail.com vitorssilva@yahoo.com.br
  • Slide 17
  • REFERNCIAS 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.eaipatterns.com/PipesAndFilters.html ome-sax-design- patterns.htm http://www.batebyte.pr.gov.br/modules/conteudo/conteudo.php?cont eudo=1049 http://www.batebyte.pr.gov.br/modules/conteudo/conteudo.php?cont eudo=1049