GN: justify"> 

Neste artigo veremos

·         Quais são os padrões estruturais;

·         Como implementá-los em Delphi;

·         Como utilizá-los em nosso dia a dia através de exemplos práticos.

Qual a finalidade?

·         Mostrar o uso adequado de padrões de projeto em uma aplicação Delphi.

Quais situações utilizam esses recursos?

·         No desenvolvimento de sistemas em geral.

 

Resumo do DevMan

         Os padrões de projeto são soluções para problemas recorrentes que surgem no desenvolvimento de sistemas. Foram inicialmente catalogados pela GoF (Gang of Four). Quatro autores, Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, que lançaram o livro mais famoso sobre o assunto: Design Patterns: Elements of Reusable Obejct-Oriented Software. Considerados como boa prática entre os desenvolvedores, veremos como aplicar os padrões estruturais em Delphi, em situações reais que podem acontecer no dia a dia do trabalho.

 

Na primeira parte desta série de artigos sobre Design Patterns, vimos como aplicar os padrões criacionais. Comentei que existem diversos padrões de projeto que podem ser utilizados para ajudar no desenvolvimento e todo o qualquer sistema. Comentei também que os padrões de projeto são, na verdade, conjuntos de soluções para problemas conhecidos e que em conjunto com a orientação a objetos podem fornecer recursos suficientes para a resolução de praticamente qualquer problema computacional. Neste artigo daremos continuidade ao assunto abordando os padrões estruturais que são compostos pelos seguintes:

 

·         Adapter;

·         Bridge;

·         Composite;

·         Decorator;

·         Façade;

·         Flyweight;

·         Proxy.

 

Padrão Adapter

Em sua definição o padrão Adapter possui a tarefa de converter a interface de uma classe para outra interface que uma classe cliente espera, permitindo que classes trabalhem juntas, mesmo possuindo interfaces diferentes. O próprio Delphi aplica automaticamente o padrão Adapter para nós. Em outras palavras algumas vezes, uma classe projetada para ser reusada não o é porque sua interface não combina com a interface requisitada por uma aplicação de um domínio específico, um exemplo disso: uma classe TextView existente poderia ser reusada através de uma interface TextShape em um editor de desenhos para desenhar e organizar elementos gráficos (linhas, polígonos, etc.), tratando o texto como mais um tipo de elemento gráfico (Figura 1). 

 

Figura 1. Exemplo do padrão Adapter em uso

 

Implementação

Para que possamos entender perfeitamente o que é e como utilizar o padrão Adapter, vamos desenvolver uma aplicação capaz de ler um arquivo PDF. Por isso inicie um novo projeto Win32 no RAD Studio Delphi 2007 e salve-o como Adapter. Observe que um Project Group é criado por padrão. Vamos utilizá-lo para manter posteriormente os outros exemplos que virão. Desta forma vocês terão um catálogo para consulta. Vamos salvar o Project Group como Estruturais. Para isso clique com o botão direito do mouse sobre ele e escolha Save Project Group.

Vamos clicar agora no menu Component>Import Component. Na janela que surgir vamos escolher ...

Quer ler esse conteúdo completo? Tenha acesso completo