Definir o que é um padrão de projeto de maneira clara e
objetiva tem sido o objetivo da comunidade de software,
desde a década de 80. Assinale a alternativa que associa
corretamente as definições a seguir com os padrões a que
pertencem.
I. - Garantem que uma classe tenha somente uma
instância e fornece somente um ponto de acesso à
instância.
II. - Define uma família de algoritmos, encapsula-os em
objetos e torna-os intercambiáveis. Permite que se
possam mudar os algoritmos independentemente de
quem os está utilizando.