Um Padrão de Projeto nomeia, abstrai e identifica os aspectos-chave de uma estrutura de projeto comum para torná-la útil para a criação de um projeto orientado a objetos reutilizáveis.
Em relação a Padrões de Projeto, segundo Gamma, considere as afirmações a seguir.
I. O padrão Prototype é um tipo de padrão estrutural.
II. O padrão Singleton tem por objetivo garantir que uma classe tenha apenas uma instância e fornecer um ponto global de acesso para ela.
III. O padrão Template Method tem por objetivo definir o esqueleto de um algoritmo em uma operação, postergando a definição de alguns passos para subclasses.
IV. O padrão Iterator fornece uma maneira de acessar aleatoriamente os elementos de um objeto agregado sem expor sua representação subjacente.
Assinale a alternativa correta considerando as afirmações sobre padrões de projeto.