9

Entenda Design Patterns

#.NET #JavaScript
Anna Maria
Anna Maria

Design Patterns


O que é

São padrões reutilizáveis de design ou de projetos. São soluções para problemas de design de software.


Quais os benefícios

  • Produtividade
  • Organização de projetos
  • Manutenção de projetos
  • Facilidade nas discussões técnicas


Os principais Design Patterns

Os autores do livro “Design Patterns: Elements of Reusable Object-Oriented Software” agruparam os Design Patterns em três tipos diferentes:


Creational

Os padrões desta categoria fornecem meios para criar/instanciar objetos, encapsulando a lógica de criação deles. Desta forma, utilizando o operador new, diversos objetos podem ser instanciados, de acordo com a situação.

São eles:

  1. Abstract Factory: Criam famílias de objetos on the fly com alta flexibilidade;
  2. Builder: Constrói o produto passo a passo;
  3. Factory Method: Cria objetos on the fly com alta flexibilidade;
  4. Prototype: Permite a criação de novos objetos a partir da cópia de um modelo original ou protótipo;
  5. Singleton: Centraliza e compartilha recursos.


Structural

Estes padrões cuidam da composição dos objetos. O conceito de herança pode ser utilizado para definir como a classe é estruturada, mantendo a flexibilidade de comportamento.

São eles:

  1. Adapter: Pluga o conteúdo ao sistema;
  2. Bridge: Separa implementações de abstrações em prol da flexibilidade;
  3. Composite: Trata todos os objetos de forma justa;
  4. Decorator: Incrementa funcionalidades de forma dinâmica;
  5. Facade: Simplifica a utilização de subsistemas complexos;
  6. Flyweight: Compartilha pequenos recursos para economizar espaço;
  7. Proxy: Faz com que um objeto represente outro objeto.


Behavioral

Estes padrões estão focados na comunicação entre os objetos.

  1. Chain of Responsibility: Repassa as requisições para evitar a dependência entre um objeto receptor e o solicitante. Com isso, permite que outros objetos da cadeia tenham a oportunidade de tratar tal solicitação;
  2. Command: Transforma requisições em objetos;
  3. Interpreter: Define uma gramática e um interpretador;
  4. Iterator: Percorre um conjunto de dados independentes da implementação;
  5. Mediator: É um simplificador de relacionamentos complexos;
  6. Memento: Externaliza estados sem quebrar o encapsulamento;
  7. Observer: Realiza o compartilhamento de recursos de maneira inteligente;
  8. State: É considerado muito importante porque simplifica a troca de estados internos de objetos;
  9. Strategy: Separa os dados dos algoritmos para que possam ser reutilizados;
  10. Template Method: Define algoritmos extensíveis;
  11. Visitor: Define uma nova operação para uma classe sem alterá-la.




Espero ter ajudado 💞

 

Alguns dos meus artigos anteriores:

💫 Ensinando a ter um servidor e um domínio GRÁTIS com GitHubPages

💫Sites para fazer download gratuito de ícones

💫Melhores extensões para trabalhar no Visual Studio Code

💫Melhores temas do Visual Studio Code

💫Como usar Font Awesome

💫 Como colocar ícone ou logo do seu site na barra de endereço do navegador

💫 Como usar imagens e gifs nos seus artigos da DIO

💫 O que você precisa saber para começar a ser um(a) desenvolvedor(a) freelancer
💫Entenda programação orientada a objetos
💫 Projetos que todo(a) desenvolvedor(a) Front-End deveria fazer
💫 Extensões úteis que todo desenvolvedor(a) front-end deveria usar


______________________________________________________________________________________

Olá, meu nome é Anna Maria eu sou uma desenvolvedora Front-End.

Me desafiei a postar um artigo por dia aqui na DIO, com assunto diversos, mas principalmente coisas que eu tive/tenho dificuldade.

Então decidi compartilhar com vocês.

 

📌Me siga para ver mais artigos

📌Curta( lá em cima do lado esquerdo " ^ ")

📌Comente se te ajudou

 

Se ficar com alguma dúvida pode me contatar 📧

✨Discord: imnotannamaria#1935

✨LinkedIn: www.linkedin.com/in/anna-maria-573801191/

✨Email: aannamariabr@outlook.com

 

_Anna Maria

3
108

Comentários (3)

1
Thiago Guedes

Thiago Guedes

13/01/2021 14:48

Braba demais. Como sempre!

1
Martin Junior

Martin Junior

13/01/2021 14:41

Excelente artigo, Anna Maria.

2
A

Alexandre Silva

12/01/2021 20:50

Parabéns Anna,

Os Artigos que fez estão sendo muito bem aproveitados,

Obrigado.

Desenvolvedora Front-End | JavaScript | CSS | HTML

Brasil