Ao desenvolver software nos deparamos com diversos problemas, que, embora muitas vezes sejam de necessidades distintas, possuem soluções comuns. Mas como saber qual solução "comum" usar para atender cada problema? Foi para isso que surgiram os padrões de projeto!
- Uma solução repetível para um problema comum ao fazer o "design do software".
- É um "modelo" de "como resolver" um problema.
- Esta "solução" ou "modelo" poderá ser reutilizada em diversas situações diferentes.
Apresentaremos aqui pelo menos um exemplo de cada padrão de projeto essencial para desenvolver software nos dias de hoje. Para isto, utilizaremos como linguagem de exemplo o PHP (pois é linguagem que mais uso no trabalho).
Os Design Patterns estão separados em 3 grandes grupos. Vamos conhecê-los:
Este grupo trata sobre a instanciação de classes, como devemos criá-las e como devemos utilizar os objetos instanciados e o uso correto de heranças.
Este grupo trata sobre composição de classes e objetos, o uso da herança para compor interfaces e melhores formas de construir objetos para adição de novas funcionalidades.
Este grupo trata sobre comunicação entre objetos das classes, ou seja, como estes objetos devem se "comportar" para poderem se comunicar.