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.

Transcript
Page 1: 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.

Filter

Design Pattern

Page 2: 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.

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

Page 3: 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.

Padrões Relacionados

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

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

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.

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

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.

Page 6: 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.

Formas Básicas

Os fluxos de dados acontecendo quando um filtro pega os dados de um outro objeto fonte.

Page 7: 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.

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.

Page 8: 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.

ParticipantesAbstractSourceFilter

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.

Page 9: 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.

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.

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

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.

Page 11: 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.

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

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

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.

Page 13: 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.

EXEMPLO DE APLICAÇÃO

Page 14: 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.

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:

- [email protected]

- [email protected]

 

Page 15: 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.

Diagrama da Prática

Page 16: 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.

Dúvidas?

CONTATOS

[email protected]@[email protected]

Page 17: 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.

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