Padrões de Projeto em Delphi, é realmente possível?

Tempo de leitura: 3 minutos

Neste artigo eu vou dar início a uma série de artigos sobre padrões de projeto. Este tema é pouco discutido no meio dos desenvolvedores Delphi e acredito que isso tem um motivo muito claro. Como o grande benefício do Delphi é ser RAD muitos desenvolvedores acabam por se acomodar. Padrões de projeto então,  não figura entre suas prioridades. Sei que não é o seu caso, correto?

padrões de projetoAntes de mais nada é importante conhecermos como surgiram os padrões de projeto. Na década 70 um engenheiro chamado Christopher Alexander começou a observar que as construções daquela época seguiam determinados padrões. Quando eu digo padrões, não só padrões arquitetônicos, mas padrões na sua construção.  Ele começou a identificar que todas essas construções sempre passavam pelos mesmos problemas. Ele notou que as empresas, as construtoras, elas empregavam geralmente a mesma solução para esses problemas recorrentes.

Ele resolveu então documentar esses dados e escreveu um livro chamado Padrões de Projeto para a Engenharia Civil, este libro era como um guia dizendo o seguinte: “Olha, toda construção que tenha esse e esse porte, vai passar por esse, por esse e por esse problema. Para não passar por isso, faça isso aqui. Ou utilize essa técnica para resolver esse problema. Faça assim para não ter esse problema. Se passar por isso, use isso daqui. Quando isso acontecer, faça isso aqui”.

Anos depois um grupo de amigos formado por 4 jovens, que no mundo da orientação a objeto são conhecidos como GOF, (Gang of Four ou Gangue dos 4), pegaram este livro, a ideia desse livro e começaram a identificar e fazer a seguinte comparação: “Bem, os projetos de software orientado a objeto são muito similares a essas construções, no sentido de que eles passam pelos mesmos problemas. Toda vez que a gente vai desenvolver um software orientado a objeto, a gente tem esses problemas”.

Padrões de Projeto na Programação

Então, o que eles fizeram? Eles catalogaram os principais problemas, estudaram as soluções aplicadas para resolver esses problemas, e criaram o que a gente chama hoje de Padrões de Projeto do Desenvolvimento de Software. O GOF documentou 23 padrões e justamente com a mesma finalidade com que Christopher Alexander criou seu livro, para ser um guia, era como se eles dissessem o seguinte:

“Olha, vai desenvolver um software orientado a objeto? Para evitar esse problema, faça isso aqui. Para evitar esse, esse e esse risco, crie uma classe assim. Você tem uma classe que desempenha esse papel? Coloque esse método lá que vai resolver isso daqui”. E com isso eles criaram 23 soluções reutilizáveis para contornar problemas comuns a todo e qualquer projeto de software orientado a objeto.

Um exemplo, que é o mais comum de todos os padrões de projeto, é o Singleton. Nele você quer tem uma única instância de uma determinada classe, um único objeto de uma determinada classe e um ponto de acesso global a esse objeto. Para que eu preciso ter 2 objetos usuários na minha aplicação para controlar o usuário logado? Para que eu vou querer ter 2 objetos de conexão ao banco de dados? Então, essas classes, classe usuário, classe conexão, classe de log, são classes fortemente candidatas a terem o padrão de projeto Singleton implementado nelas.

Por hora é isso, apenas um pouco de história antes de avançarmos neste assunto aplicado ao Delphi claro.

Até mais!