Filter Design Pattern Definio n Filter um padro

  • Slides: 17
Download presentation
Filter Design Pattern

Filter Design Pattern

Definição n Filter é um padrão de projeto utilizado para análise e tratamento de

Definição n 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 n Possui alguns padrões relacionados: Decorator; n Composite; n Pipe; n

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

Contexto n Análise simples de fluxo de dados podem ser comum a vários programas.

Contexto n Análise simples de fluxo de dados podem ser comum a vários programas. n 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.

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

Formas Básicas n Os fluxos de dados acontecendo quando um filtro pega os dados

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

Participantes ¨ Abstract. Source ¨ Esta classe abstrata declara um método, indicado no diagrama

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

Participantes ¨ Abstract. Source. Filter ¨ Superclasse das classes que transformam e analisam dados.

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

Participantes ¨ Abstract. Sink Representao o cliente da nossa aplicação. ¨ Ao contrário dos

Participantes ¨ Abstract. Sink Representao o cliente da nossa aplicação. ¨ Ao contrário dos objetos Concrete. Source. Filter, instâncias de classes abstract sink usam os dados sem passá-lo para outro objeto Abstract. Source. Filter. ¨

Vantagens n n n As classes que implementam transformações comum de dados e analises

Vantagens n n n 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 n Conversão de dados para um formato especifico. n Adição

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

EXEMPLO DE APLICAÇÃO n Autenticação de Usuário (WEB). O exemplo da aplicação tem o

EXEMPLO DE APLICAÇÃO n 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 Net. Beans_Exemplo_Pratica. rar.

EXEMPLO DE APLICAÇÃO

EXEMPLO DE APLICAÇÃO

Prática Com base nos conhecimentos obtidos do padrão Filter e dado o diagrama de

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 Arquivoe. Ip. 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

Diagrama da Prática

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

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

REFERÊNCIAS n n http: //msdn. microsoft. com/en-us/library/ff 647419. aspx http: //tutorials. freeskills. com/professional-xml-part-4 -s

REFERÊNCIAS n n http: //msdn. microsoft. com/en-us/library/ff 647419. aspx http: //tutorials. freeskills. com/professional-xml-part-4 -s http: //www. eaipatterns. com/Pipes. And. Filters. html ome-sax-designpatterns. htm http: //www. batebyte. pr. gov. br/modules/conteudo. php? cont eudo=1049