O básico sobre o que você precisa saber sobre Padrões de Projeto | .Net Design Patterns

0

Olá pessoal, que tal falar sobre um assunto mais polêmico que política? Mais polêmico do que discutir sobre PES ou FIFA , Xbox ou PS4?

Hoje vamos falar sobre fundamentos dos padrões de projetos.

Todo desenvolvedor já ouviu pelo menos uma vez na vida falar de padrões de projetos ou traduzindo ao inglês Design Patterns.

Tirinha retirada do site Vida de Programador, o qual publica tirinhas diárias com histórias engraçadas e verídicas sobre o dia-a-dia de um programador.

Tirinha retirada do site Vida de Programador, o qual publica tirinhas diárias com histórias engraçadas e verídicas sobre o dia-a-dia de um programador.

Mas afinal o que são esses benditos padrões de projetos?

“Um Padrão de Projeto de Software ou Padrão de Desenho de Software, também muito conhecido pelo termo original em inglês, Design Pattern, descreve uma solução geral reutilizável para um problema recorrente no desenvolvimento de sistemas de software orientados a objetos. Não é um código final, é uma descrição ou modelo de como resolver o problema do qual trata, que pode ser usada em muitas situações diferentes. Os Padrões de Projeto normalmente definem as relações e interações entre as classes ou objetos, sem especificar os detalhes das classes ou objetos envolvidos, ou seja, estão num nível de generalidade mais alto.”

Fonte : Wikipédia

Tá, não entendi nada!

 

Vamos ao Simples:

Padrões de Projeto são soluções para os problemas de desenhos e arquiteturas de software que você pode utilizar de maneiras diversas que você pode utilizar na construção de software independente da linguagem utilizada.

Os 23 padrões de projetos inclusos originalmente da Gang of Four (GoF) são geralmente considerados a base para todos os outros padrões.

Os padrões são classificados geralmente em três grupos: de criação, estruturais e comportamentais.

  • Os de criação tomando a parte da criação de objetos e da forma que são instanciados dentro da estrutura do seu código.
  • Estruturais, justamente pelo próprio nome. Eles trabalham na estrutura do seu projeto. Definem como será a arquitetura, o esqueleto do seu sistema.
  • E comportamentais justamente porque trabalham diretamente no comportamento do seu código. Trabalham dentro dos objetos alterando sua funcionalidade inicial para um novo contexto, no qual você definiu.

Bom, resumidamente é isto. Simples não ?

Nosso intuito neste primeiro momento não é codificar todos os padrões, um por um. Mas prometo que logo logo iremos trabalhar com cada um deles em posts separados.

Aqui vai uma tabela para te ajudar a guiar ( e googlar ) sobre os padrões :

Padrões de Criação
  Abstract Factory Cria uma instância de várias famílias das classes
  Builder Separa a construção do objeto de sua representação
  Factory Method Cria uma instância de várias classes derivadas
  Prototype Um exemplo totalmente inicializado a ser copiado ou clonado
  Singleton Uma classe de que apenas uma única instância pode existir

 

Padrões de Estruturação
  Adapter  Adapta interfaces de diferentes classes
  Bridge Separa interface de um objeto a partir de sua implementação
  Composite   A estrutura da árvore de objetos simples e compostas
  Decorator Adicionar responsabilidades a objetos dinamicamente
  Facade A única classe que representa um subsistema
  Flyweight Um exemplo de baixo nível usado para o compartilhamento eficiente
  Proxy Um objeto que representa outro objeto

 

  Padrões Comportamentais
  Chain of Resp. Uma maneira de passar uma requisição entre uma cadeia de objetos
  Command Encapsula uma solicitação de comando como um objeto
  Interpreter Uma maneira de incluir elementos de linguagem em um programa
  Iterator Sequencialmente acessar os elementos de uma coleção
  Mediator Define comunicação simplificada entre classes
  Memento Captura e restaura o estado interno de um objeto
  Observer Uma maneira de notificar a mudança para um número de classes
  State Altera o comportamento de um objeto quando seu estado se altera
  Strategy Encapsula um algoritmo dentro de uma classe
  Template Method Adia as etapas exatas de um algoritmo para uma subclasse
  Visitor Define uma nova operação para uma classe sem alteração

Ufa! É padrão que não acaba mais!

Bom, você pode ir clicando nos links dos padrões, que você poderá ter uma visão bem mais amplificada sobre o assunto. Aliás, todo este artigo foi baseado nos links destes padrões.

Espero que tenham gostado! Logo logo volto com mais código Simples.

Que tal dar uma passada na nossa Fã Page? www.facebook.com/codigosimples

 

 

Compartilhe.

Sobre o autor

Criador do blog Código Simples e com mais 9 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist. Atuando em funções analista, desenvolvedor, arquiteto, líder técnico e gestor de equipes. Mais informações em : http://jhonathansoares.com