Um Programador de Sistemas teve que desenvolver algumas aplicações utilizando padrões de projeto. Sua primeira necessidade
foi utilizar um padrão para separar a construção de objetos complexos da sua representação, de forma que o mesmo
processo de construção pudesse criar diferentes representações. A segunda necessidade foi o uso de um padrão para permitir
que classes incompatíveis trabalhassem em conjunto, já que converte a interface de uma classe em outra, para atender às
expectativas do cliente. Para atender suas necessidades, o Programador usou, correta e respectivamente, os padrões de projeto