Sobre os padrões de projeto em Engenharia de Software, analise as afirmativas a seguir.
I. O padrão Singleton define a implementação de classes que terão apenas uma instância no sistema. Para reforçar esse critério, podemos definir um construtor padrão privado para a classe.
II. O padrão Decorador usa da composição como alternativa à herança, quando uma classe base pode adotar um grande número de combinações de funcionalidades.
III. O padrão Template Method fere o princípio das classes abstratas, pois permite implementar de maneira completa o comportamento padrão de um ou mais métodos desse tipo de classe.
Estão corretas as afirmativas
I e II, apenas.
I e III, apenas.
II e III, apenas.
I, II e III.