Vimos neste módulo uma introdução ao conceito de padrões de projeto (design patterns). Um padrão de projeto consiste em práticas e princípios que visam facilitar a reutilização, a documentação e manter um vocabulário comum em um projeto. São usados normalmente a forma de organizar, classes, interfaces, sistemas web e frameworks.
Apresentamos dois conjuntos de padrões: padrões GoF (Group of Four) e padrões GRASP (General Responsibility Assignment Software Patterns). O GoF define 23 padrões, que se dividem em três famílias: criação, estrutural e comportamental. Para ilustrar o uso do conjunto de padrões GoF vimos em detalhes o uso de dois padrões fundamentais para a criação de instâncias de classes: Abstract Factory e Factory Method. São padrões utilizados para permitir um baixo acoplamento entre classes e o código fonte responsável por criação de instâncias destas classes.
Vimos ainda nesse módulo que o GRASP, por sua vez, define 9 princípios, nos quais podem ser derivados padrões, são eles: creator, controller, Information Expert, baixo acoplamento, alta coesão, polimorfismo, Pure Fabrication, Indirection e Protected Variations.
O uso de padrões de projeto permite reduzir o tempo de desenvolvimento, melhorar a documentação e garantem uma padronização de desenvolvimento. Esses e outros padrões de projeto serão vistos em mais detalhes ao longo do curso.