Os padrões de projeto, também conhecidos como Design
Patterns, referem-se a soluções reutilizáveis para
problemas comuns no design de software. Eles representam
as melhores práticas usadas por desenvolvedores
experientes para resolver problemas específicos de design
durante o desenvolvimento de software. Os padrões de
projeto observer, factory method e proxy, são classificados,
respectivamente, como padrões de projeto do tipo