Skip to content

Commit 34d2902

Browse files
committed
texto: o que são design patterns?
1 parent 7de078c commit 34d2902

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

O_que_sao_design_patterns.rst

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
============================
2+
O que são Design Patterns
3+
============================
4+
5+
.. image:: patterns-gof-book.png
6+
:alt: Cover of the original Design Patterns book
7+
:align: right
8+
9+
*Design patterns* ou *padrões de projeto* são formas de organizar um programa orientado a objeto para resolver determinados problemas promovendo a flexibilidade e a adaptabilidade do sistema a novas demandas.
10+
11+
Por exemplo, o design pattern **Iterator** (**Iterador**) recomenda a criação de uma classe especializada para percorrer uma coleção de objetos, oferecendo uma interface padrão (por exemplo, um método ``next``) de forma que as outras classes do programa que precisam percorrer os itens da coleção não precisam saber como ela é implementada; elas só precisam chamar o método ``next``. Isso permite também trocar a implementação da coleção e modificar apenas o **Iterador**, sem ter que alterar o código das partes do programa que utilizam o **Iterador**.
12+
13+
Após muitos anos estudando e praticando programação orientada a objetos, quatro professores (Erich Gamma, John Vlissides, Ralph Johnson, e Richard Helm) escreveram o livro *Design Patterns: Elements of Reusable Object-Oriented Software* (*Padrões de Projeto - Soluções Reutilizaveis de Software Orientado a Objetos*). Os quatro autores ficaram conhecidos como a "Gangue dos Quatro" e o livro às vezes é citado como *GoF* (Gang of Four).
14+
15+
No livro *Design Patterns* eles não inventaram nenhum padrão novo, mas sim definiram uma metodologia para documentar padrões existentes, e aplicaram a metodologia documentando e nomeando 23 padrões específicos.
16+
17+
Descrever os padrões e dar nomes a eles foi uma grande contribuição, porque agora podemos falar "vamos implementar um **Iterator**" em vez de "vamos implementar uma classe com um método ``next`` que vai ser instanciada pela coleção e vai cuidar do estado de uma iteração com um cliente e blá, blá blá, blá...".
18+
19+
Aprender padrões de projeto é uma forma de aperfeiçoar suas habilidades para construir sistemas orientados a objetos.

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
# pythonpatterns
2-
Exemplos do curso Python Patterns
2+
3+
Futuras instações dos exemplos do curso Python Patterns com Luciano Ramalho

patterns-gof-book.png

161 KB
Loading

0 commit comments

Comments
 (0)