Analise as afirmativas abaixo em relação aos padrões de projetos de software:

I. Builder: atribui responsabilidades adicionais a um objeto dinamicamente. Fornece uma alternativa flexível à utilização de subclasses para a extensão de funcionalidades.

II. Decorator: compõe objetos em estrutura de árvore para representar hierarquias do tipo partes-todo. Permite que os clientes da estrutura tratem objetos individuais e composições de objetos de maneira uniforme.

III. Memento: sem violar o encapsulamento, captura e externaliza um estado interno de um objeto, de modo que o mesmo possa posteriormente ser restaurado para esse estado.

Está correto o que se afirma em:

  • A. somente I;
  • B. somente II;
  • C. somente III;
  • D. somente I e II;
  • E. I, II e III.