Design Pattern
Uma solução geral e reutilizável para um problema comumente ocorrente dentro de um determinado contexto no projeto de software. Padrões de projeto não são projetos acabados que podem ser transformados diretamente em código; eles são um guia para resolver um problema.