25 de julho de 2009

Implementando Design Patterns

Há muitas expressões associadas à Tecnologia de Informação que são meros modismos, formas de se criar problemas para vender solução. Essas expressões surgem e logo são descartadas para dar lugar a outras mais "modernas", muitas vezes ideias requentadas que são apresentadas sob uma nova roupagem. Confesso que pensei ser esse o caso a primeira vez que ouvi falar dos Design Patterns ou Padrões de Projeto de Software, mas estava enganado.

A expressão Design Patterns diz respeito a uma série de soluções bem testadas e documentadas para resolver problemas computacionais específicos. Ou seja, alguém tinha um problema de programação e conseguiu resolvê-lo de uma forma bem estruturada, tornando a solução reaproveitável. É justamente essa a razão de não ser apenas modismo já que cada uma das soluções pode ser aplicada sempre que aparecer a mesma situação que o Pattern se propõe a resolver, independendo da linguagem de programação ou do ambiente operacional escolhido - única restrição é que a linguagem comporte o conceito de Objetos. É provável que você já use algumas das soluções propostas sem mesmo saber que se trata de um Design Pattern já estabelecido.

A ideia dos Padrões de Projeto foi introduzida na década de 1970 pelo austríaco Christopher Alexander. Ele propôs um sistema que estabelece as características de um padrão - isto é, como determinar que algo se constitui num padrão - e como descrever formalmente o padrão. A grosso modo, essa descrição formal deve detalhar o problema em questão, contextualizá-lo ao indicar em quais situações o padrão descrito se aplica e, obviamente, descrever a solução para o problema proposto. Embora Christopher Alexander seja arquiteto e sua teoria tenha sido calcada no projeto e construção como entendidos pela Arquitetura, seus conceitos de Padrões de Projeto são genéricos o suficiente para serem adotados na informática.

O transporte dessas ideias para a Computação teve início na década de 1980 mas o grupo mais conhecido de Padrões de Projeto de Software foi descrito em 1994 no livro Design Patterns. O fato do livro ter sido escrito por 4 programadores deu nome à coleção de Patterns: Gof ou Gang of Four.

Os padrões Gof foram agrupados em 3 categorias, de acordo com o momento em que são aplicados:
Criacionais: são padrões que introduzem formas de se criar instâncias de uma Classe. Os padrões dessa categoria tornam mais flexíveis a instanciação de classes em situações em que o tipo de classe necessária pode variar ao longo da existência de um programa.

Estruturais: são padrões que tratam das associações estruturais entre classes e objetos, isto é, as formas com que as classes se conectam dentro de um programa para garantir a coesão do projeto.

Comportamentais: são padrões que permitem modelar a maneira como classes e objetos colaboram entre si, estabelecendo as interações e as divisões de responsabilidades dessas classes e objetos num sistema.

Esse post é apenas uma introdução ao assunto. Pretendo colocar outros posts para mostrar na prática a utilização dos Design Patterns através de exemplos em Delphi.

Nenhum comentário :

Postar um comentário

OBS: Os comentários enviados a este Blog são submetidos a moderação. Por isso, eles serão publicados somente após aprovação.

Observação: somente um membro deste blog pode postar um comentário.