Na programação orientada a objetos, é comum que as soluções para problemas semelhantes apresentem recorrência de determinadas estruturas e relações no código. Os padrões de projeto evitam que seja necessário criar uma nova solução do zero para cada problema, ao oferecer modelos testados em projetos anteriores que, após documentados, podem ser reutilizados em novos projetos.

Fonte: Pixabay.
Fonte: Pixabay.

Com o uso de padrões de projeto, o código se torna mais reusável e extensível, e o desenvolvimento de código mais complexo é facilitado.

Os padrões de projeto são classificados basicamente em três categorias: padrões de criação, estruturais e de comportamento.

Padrões de criação

Padrões de criação são aqueles relacionados a criação de objetos, modificando a forma como os objetos são criados quando o modo normal de criação não é apropriado ao contexto.

Um exemplo desta categoria é o padrão "factory method", no qual um método para criação do objeto é definido numa classe base (ou apenas especificado na interface) e sobrescrito nas classes derivadas (ou implementado nas classes implementadoras, no caso da interface). Este padrão não deve ser confundido com o "abstract factory", que apenas fornece uma interface para criação de objetos, escondendo os detalhes de implementação.

Padrões estruturais

Padrões estruturais apresentam formas de facilitar a composição de objetos e classes em estruturas maiores.

Um exemplo de padrão estrutural é o "adapter pattern", que permite que uma classe, cuja interface seja incompatível com a interface requerida, seja substituída por uma subclasse que que implemente a interface apropriada.

Padrões de comportamento

Os padrões de comportamento definem como ocorre a atribuição de responsabilidades entre os objetos e classes, descrevendo também os padrões de comunicação entre eles.

O padrão "template method" é um padrão comportamental. Nele, uma classe abstrata define um método (template) e delega às subclasses os demais métodos, exigidos pelo método template.

Para saber mais:

Leia também