Introdução Quando você programa orientado a objetos por tempo suficiente, alguns problemas/comportamentos se repetem, não a solução exata, mas o formato do problema: Preciso trocar de comportamento em runtime sem um monte de if ”; Preciso que vários objetos saibam quando algo mudou preciso criar um objeto complexo sem um construtor gigante Essencialmente, um design pattern é apenas isso. Uma solução já testada e batizada para um desses formatos de problema. Não é uma bibliote...