Atenção: esse artigo tem um vídeo complementar. Clique e assista!

Do que trata o artigo

O artigo apresenta o padrão Abstract Factory por meio do desenvolvimento de um Framework para acesso a dados. Este Framework deverá facilitar o desenvolvimento ou adaptação de aplicações para acesso a mais de uma base de dados.


Para que serve

O padrão Abstract Factory permite a criação de famílias de objetos (relacionados ou dependentes), por meio de uma interface única, sem a necessidade de especificar a classe concreta, sendo amplamente utilizando no mundo da POO.


Em que situação o tema é útil

O Abstract Factory é bastante útil para aplicações que são ou tendem a ser de grande porte, permitindo a criação de famílias de objetos utilizando apenas uma interface. O padrão utilizado no Framework desenvolvido no artigo possibilita a adaptação de aplicações que têm a necessidade de conexão a mais de uma base de dados sem que seja preciso uma grande alteração no código.

Resumo do DevMan

O artigo aborda um assunto bastante pertinente aos dias atuais. O uso de padrões de projeto no desenvolvimento de software visa aumentar a produtividade da equipe e a flexibilidade da aplicação, tornando-a mais fácil de entender e dar manutenção. Dentre os vários padrões existentes, escolhemos o Abstract Factory para demonstrar o quão útil os padrões podem ser para os desenvolvedores. Para demonstrar como implementar este padrão, iremos desenvolver um Framework que permite o acesso a diferentes gerenciadores de bancos de dados, tais como MySQL e PostgreSQL.

Autores: Lucas Simões Maistro e Raphael Zanon Rodrigues

Nos dias atuais, o desafio para os desenvolvedores é criar aplicações de fácil manutenção, reutilizáveis, eficientes, seguras e com os prazos geralmente curtos. Para isso, as equipes de desenvolvimento têm baseado suas aplicações em paradigmas de análise, projeto e programação que suportam essas necessidades. O paradigma de orientação a objetos tem ganhado bastante espaço nos últimos tempos, pois proporciona aos desenvolvedores tais soluções. Porém, a especificidade dessas soluções ou alguns objetos podem ser tão grandes que esses códigos teriam que ser duplicados a cada vez que necessitássemos de sua criação (ou instanciação).

Caso você ainda não tenha passado por nenhuma situação semelhante, imagine que uma aplicação tem a necessidade de acessar bases de dados distintas como, por exemplo, o MySQL e o PostgreSQL. Seria necessário repetir aquela linha de comando criando a conexão passando o conjunto de diretivas necessárias a cada banco todas as vezes que precisássemos acessar a base. Essa já seria uma prática bastante tediosa, mas, para dar uma melhor visão da situação, imagine que depois da aplicação funcionando, se torna necessário alterar a senha ou mesmo o usuário de algum desses bancos? Nesse momento foi estabelecido o caos, onde é preciso procurar em cada arquivo as diretrizes de conexão do banco e alterar, na “unha”, cada uma delas.

Padrões de Projeto

Deixando o nosso problema um pouco de lado, vamos definir o que são os padrões de projeto. Na arquitetura de software, padrões de projeto são soluções desenvolvidas e utilizadas anteriormente por especialistas em grande escala para a solução de problemas comuns para um projeto de software. Por serem reutilizadas muitas vezes e em vários projetos, estas soluções se tornam padrões após terem sua eficácia comprovada.

Mas de onde surgiram os padrões de projetos? É possível considerar que a ideia de padrão de projeto surgiu com um engenheiro civil chamado Christopher Alexander que propôs a criação de catálogos para Arquitetura. Em 1978, Christopher lança seu livro com o nome "A Pattern Language" onde são feitas definições de padrão de projeto.

A partir desta definição, profissionais da área de software passaram a utilizar esses princípios para a criação das primeiras documentações de padrões de projetos para serem utilizados como uma espécie de guia para novos desenvolvedores. Em 1995, Eric Gamma, Richard Helm, Ralph Johnson e John Vlissides - (Gang of Four), publicam o livro "Design Patterns: Elements of Reusable Object-Oriented Software", onde os autores descrevem 23 padrões baseados em suas experiências e que, ainda hoje é a principal referência no assunto.

...
Quer ler esse conteúdo completo? Tenha acesso completo