Gabarito: d) I e II
Vamos analisar cada afirmação:
I. O padrão Builder realmente separa a construção de um objeto complexo da sua representação, permitindo que o mesmo processo de construção crie diferentes representações. Isso está correto.
II. O Abstract Factory fornece uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas. Essa definição está correta.
III. O padrão Bridge não é sobre decidir qual classe será instanciada pelas subclasses, mas sim sobre separar uma abstração da sua implementação para que ambas possam variar independentemente. A descrição dada está mais próxima do padrão Factory Method. Portanto, essa afirmação está incorreta.
IV. A descrição mistura conceitos. O Chain of Responsibility é um padrão que permite que uma solicitação seja passada ao longo de uma cadeia de objetos até que algum objeto a trate. A parte sobre "compartilhamento para suportar grandes quantidades de objetos" e "dependência um-para-muitos" com notificações automáticas está relacionada ao padrão Observer, não ao Chain of Responsibility. Logo, essa afirmação está incorreta.
Portanto, apenas as afirmações I e II são verdadeiras.
Vamos analisar cada afirmação:
I. O padrão Builder realmente separa a construção de um objeto complexo da sua representação, permitindo que o mesmo processo de construção crie diferentes representações. Isso está correto.
II. O Abstract Factory fornece uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas. Essa definição está correta.
III. O padrão Bridge não é sobre decidir qual classe será instanciada pelas subclasses, mas sim sobre separar uma abstração da sua implementação para que ambas possam variar independentemente. A descrição dada está mais próxima do padrão Factory Method. Portanto, essa afirmação está incorreta.
IV. A descrição mistura conceitos. O Chain of Responsibility é um padrão que permite que uma solicitação seja passada ao longo de uma cadeia de objetos até que algum objeto a trate. A parte sobre "compartilhamento para suportar grandes quantidades de objetos" e "dependência um-para-muitos" com notificações automáticas está relacionada ao padrão Observer, não ao Chain of Responsibility. Logo, essa afirmação está incorreta.
Portanto, apenas as afirmações I e II são verdadeiras.