Ed
há 3 semanas
Para resolver essa questão, vamos analisar as alternativas em relação ao padrão Decorator e como ele se aplica ao problema apresentado. O padrão Decorator é utilizado para adicionar funcionalidades a um objeto de forma dinâmica, sem a necessidade de criar subclasses para cada combinação de características. Isso é especialmente útil em situações onde há muitas combinações possíveis, como no exemplo de pedidos de café. Vamos analisar as alternativas: A) Adapta interfaces sem modificar as classes originais. - Embora o Decorator possa adaptar interfaces, essa não é a principal vantagem que resolve o problema da explosão de subclasses. B) Implementação pode ser selecionada em tempo de execução. - Isso é verdade, mas não é a principal vantagem que se destaca no contexto da questão. C) Adição de funcionalidades por composição e encapsulamento. - Esta é uma das principais vantagens do padrão Decorator, pois permite adicionar ingredientes de forma dinâmica sem criar subclasses para cada combinação. D) Garante uma única instância de cada classe. - Isso não é uma característica do padrão Decorator. E) Permite composição de objetos em árvore. - Embora o padrão Decorator permita a composição, a questão não se refere especificamente a essa característica. A alternativa que melhor atende ao requisito da questão, considerando a adição dinâmica de funcionalidades sem a necessidade de criar várias subclasses, é: C) Adição de funcionalidades por composição e encapsulamento.