Início > Dicas, Tutorial > Padrões de Projeto de Software

Padrões de Projeto de Software

Olá gente!

Você já ouviu falar de Padrões de Projeto? Ou o termo em inglês, Design Patterns? Bem, vamos formular umas perguntas e respostas:

1) O que é Padrões de Projeto?
2) Para que servem os Padrões de Projeto?
3) Como escolher o Padrão de Projeto do meu software?

Como diria Jack, o estripador, vamos por partes. Vou contar para vocês uma historinha que o meu orientando do laboratório que estou estudando, o Dr. Jerffeson Teixeira, contou em uma palestra sobre PP (Padrões de Projeto). Suponha que um alienígena veio estudar Engenharia de Software aqui na Terra. Mais especificamente, na UECE. O alienígena, vendo que todos iam para às aulas de roupa, perguntou a mim com que roupa ele deveria ir para as aulas (Aqui nós encontramos um problema: Como o alien deve ir para a aula). Eu, então, respondi: olha, estamos no Ceará, normalmente os alunos vão de bermuda ou calça e uma camisa (Uma solução. Uma solução USUAL).

Ok, vamos pensar. Bermuda ou calça + camisa. É a melhor solução? Bem, talvez sim, talvez não, mas de qualquer forma, é uma ótima solução, afinal, a grande maioria vai vestido assim, não é mesmo? Então voltando às perguntas:

1) Padrões de Projetos são boas ou até ótimas soluções para determinado software orientado à objeto a ser desenvolvido. Complementando um pouco mais com o Wikipédia: “os padrões de projeto visam facilitar a reutilização de soluções de desenho – isto é, soluções na fase de projeto do software, sem considerar reutilização de código. Também acarretam um vocabulário comum de desenho, facilitando comunicação, documentação e aprendizado dos sistemas de software.”

Antes de continuar com o restante das respostas das perguntas, devo lhes confessar que há 2 tipos de PP: Padrões GoF (Trataremos um exemplo aqui) e Padrões GRASP (General Responsibility Assignment Software Patterns). GoF é um acrônimo de Gang of Four, formado por Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides. Vale lembrar o que GoF pode ser subdivido em três tipos de padrões:

  • Padrões de criação;
  • Padrões estruturais;
  • Padrões comportamentais.

Quem tiver realmente interessado no assunto, que vale a pena aprender, há diversos livros para download e para vender também.

2) Para que servem os Padrões de Projeto? Alguns exemplos já foram citados, tais como: criar um vocabulário comum entre desenvolvedores de software; são, geralmente, ótimas soluções; além disso, os padrões nos dão generabilidade, uma maior abstração, e os padrões têm sempre um contexto, um problema e uma (ou mais) soluções.

3) E qual o melhor Padrão de Projeto? Cada caso é um caso, já diz o ditado. Vai depender de que tipo de software você está desenvolvendo. Alguns aspectos a serem observados para lhe auxiliar na escolha do seu PP:

  • Conheça bem os Padrões de Projeto;
  • Considere como os padrões de projeto solucionam problemas de projeto;
  • Examine as seções de descrição do problema de cada padrão;
  • Estude como os padrões se interrelacionam;
  • Estude padrões de finalidades semelhantes;
  • Examine uma causa de reformulação de projeto;
  • Olhe exemplos dos padrões;
  • Considere o que deveria ser variável no seu projeto.

Para finalizar, eu gostaria de mostrar um exemplo de uma classe do Singleton, que é um Padrão de Criação do GoF, que garante a existência de apenas uma instância da classe. Você pode usar quando você necessitar de somente uma instância da classe, por exemplo, uma conexão com banco de dados. Suponha que você terá que chamar diversas vezes a conexão com o banco de dados em um código na mesma execução. Se você instanciar toda vez a classe de banco, haverá grande perda de desempenho. O singleton irá garantir para você que há apenas uma instância daquela classe. Enfim, vamos partir para o nosso exemplo da nossa classe em Java:

public class MySingleton {
/* Instancia privada que será acessada */
private static MySingleton myInstance;
/* Construtor privado. Suprime o construtor público padrao. */
private MySingleton() {
/* Operações de inicialização da classe */
}
/* Método público de acesso único ao objeto! */
public static MySingleton getInstance(){
if(myInstance == null) {
myInstance = new MySingleton();
}
return myInstance;
}
}

É isso. Quem tiver dúvidas, críticas, sugestões, por favor, comentem!
Abraços e até a próxima!

  1. Jenny Cullen Neto
    dezembro 29, 2010 às 6:27 pm

    Te axei aki! Sabe quem sou eu? heehehehe Vc comentou minha prova no Naosalvo. Bjks e obg http://www.santaingnoranca.blogspot.com

  2. dezembro 29, 2010 às 8:23 pm

    Ah, sim, lembrei! Foi mesmo. Boa prova! Obrigado por comentar!

  3. Natercia
    abril 10, 2011 às 2:49 pm

    Gostei! ;D Continue assim!

  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: