Por que eu devo ler este artigo:Esse artigo trata de forma prática vários temas importantes no desenvolvimento de aplicações Java. Abordaremos aqui, passo a passo, a modelagem e a implementação de uma aplicação que faz uso intensivo de design patterns e de bibliotecas open source. Ao mesmo tempo, destacamos boas práticas de desenvolvimento e apresentamos algumas APIs do Java.

Entendendo o contexto

Como sabemos, os design patterns (padrões de projeto) descrevem soluções para problemas recorrentes. Seu uso normalmente torna a aplicação mais elegante e mais fácil de manter. Os patterns também definem uma terminologia comum para uso pelos profissionais envolvidos no projeto, facilitando assim a compreensão do código que os utiliza.

A literatura sobre padrões de projeto é extremamente ampla [1], mas muitos desenvolvedores ainda têm dúvida na maneira de aplicar alguns patterns menos comuns. Ainda que exista um forte movimento a favor do uso de patterns, alguns programadores têm pouco contato com outros além dos “Java EE patterns” ou os implementados pelos frameworks web (Command, Singleton, Factory etc).

Nota [1]: O tema é tão discutido que existem até conferências dedicadas exclusivamente aos patterns, como a SugarLoafPLoP.

Neste artigo usaremos dois patterns de ampla utilidade que são usados nas APIs do Java e em vários frameworks e bibliotecas: Template Method e Chain of Responsibility. Embora seu uso seja menos comum que o dos padrões citados anteriormente [2], você verá que esses patterns trazem uma série de benefícios importantes.

Nota [2]: Os dois padrões são utilizados na API Java. O tratamento de erros utiliza o Chain of Responsibility e diversas classes abstratas utilizam o Template Method.

Entendendo a ferramenta

Nosso interesse é construir uma ferramenta de visualização de arquivos. Apesar de o Java oferecer suporte nativo à visualização e à manipulação de arquivos-texto e imagens, um visualizador que incorpore realce de sintaxe, ou que permita exibir arquivos complexos, exige codificação adicional. Nosso desafio é construir um visualizador genérico, que permita exibir diversos formatos de arquivo (com realce de sintaxe, quando aplicável) e que seja extensível, permitindo que no futuro outros formatos sejam incorporados.

As Figuras 1 à 6 mostram o funcionamento do nosso visualizador, que permite mostrar nove tipos arquivos (html, jpg, gif, png, java, pdf, rtf, txt e xml). A utilização é simples: basta arrastar um ou mais arquivos sobre a tela e uma aba será criada para cada um. Cada aba incorpora um componente visual específico, responsável pela renderização do arquivo em questão.

Arrastando arquivos para visualização
Figura 1. Arrastando arquivos para visualização
Visualização de arquivo RTF
Figura 2. Visualização de arquivo RTF
Visualização de arquivo HTML
Figura 3. Visualização de arquivo HTML
Visualização de arquivo PDF
Figura 4. Visualização de arquivo PDF
Visualização de arquivo XML
Figura 5. Visualização de arquivo XML
...
Quer ler esse conteúdo completo? Tenha acesso completo