Os padrões GoF refletem situações muito recorrentes em ...

Próximas questões
Com base no mesmo assunto
Q450046 Arquitetura de Software
Os padrões GoF refletem situações muito recorrentes em projetos orientados a objetos. Esses padrões são classificados em três famílias: padrões de criação, padrões estruturais e padrões comportamentais. Considere os objetivos principais de alguns desses padrões, tais como:

I. produzir objetos utilizando uma estrutura de árvore para representar hierarquias de todo-parte, de forma a permitir que objetos do tipo todo ou do tipo parte sejam tratados da mesma maneira.

II. atribuir responsabilidades adicionais a um objeto de forma dinâmica, para atender a algumas situações em que seja desejado que um objeto tenha mais responsabilidades que os demais da sua classe.

III. prover uma interface única para um conjunto de interfaces de um subsistema, facilitando o seu uso, para atender a situações em que um conjunto de classes deve se comportar como um componente.

Os padrões cujos objetivos foram descritos em I, II e III são, respectivamente:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a alternativa B: Composite, Decorator e Facade, da família de padrões estruturais.

Vamos entender o porquê e analisar as outras alternativas:

Justificação da alternativa correta (B):

I. O padrão Composite é utilizado para compor objetos em estruturas de árvore para representar hierarquias do tipo todo-parte. Ele permite que o cliente trate objetos individuais e composições de objetos de maneira uniforme. Isso reflete exatamente o objetivo descrito.

II. O padrão Decorator adiciona responsabilidades a um objeto de forma dinâmica. Este padrão é ideal para situações em que objetos precisam ter responsabilidades adicionais, conforme foi descrito. Assim, ele cumpre o objetivo da segunda descrição.

III. O padrão Facade fornece uma interface simplificada para um conjunto de interfaces em um subsistema. Ele torna o uso do subsistema mais fácil e acessível. Isso atende exatamente ao objetivo descrito na terceira descrição.

Análise das Alternativas Incorretas:

A: Abstract Factory, Prototype e Singleton - Esses padrões pertencem à família de padrões de criação, que se concentram na criação de objetos. Abstract Factory cria famílias de objetos relacionados ou dependentes sem especificar suas classes concretas, Prototype cria novos objetos clonando uma instância prototípica, e Singleton garante que uma classe tenha apenas uma instância e fornece um ponto global de acesso a ela. Nenhum desses padrões está relacionado com os objetivos mencionados na questão.

C: Template Method, State e Mediator - Esses padrões pertencem à família de padrões comportamentais, que tratam de algoritmos e atribuições de responsabilidades entre objetos. O Template Method define o esqueleto de um algoritmo em uma operação, delegando alguns passos para subclasses. O State permite que um objeto altere seu comportamento quando seu estado interno muda. O Mediator define um objeto que encapsula como um conjunto de objetos interage. Novamente, estes não atendem aos objetivos descritos.

D: Composite, Decorator e Facade - Embora os padrões sejam corretos, eles foram incorretamente classificados como padrões de criação, quando na verdade são padrões estruturais.

E: Abstract Factory, Prototype e Singleton - Novamente, esses padrões são de criação, não estruturais. A classificação está incorreta.

Para resolver questões como essa, é crucial conhecer as famílias de padrões de projeto (criação, estruturais e comportamentais) e entender as características e objetivos específicos de cada padrão. Compreender como e quando aplicar cada padrão é fundamental para identificar corretamente as soluções propostas nas descrições.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Padrão de Criação: preocupam se com a criação de objetos.

Padrão estrutural: lidam com a composição de classes ou de objetos.

Padrão comportamental: caracterizam as maneiras pelas quais classes ou objetos interagem e distribuem responsabilidades.

Neste link podemos ver os padrões e seus respectivos padrões.

https://www.google.com.br/search?q=padroes+de+cria%C3%A7%C3%A3o&client=ubuntu&hs=HxP&channel=fs&source=lnms&tbm=isch&sa=X&ei=YNy4VNDAA5SjyAS4gIKICg&ved=0CAgQ_AUoAQ&biw=1440&bih=803#imgdii=_&imgrc=98w3GRdc5Wcz7M%253A%3BEgJ37YmYHVTwIM%3Bhttps%253A%252F%252Fi0.wp.com%252Fwiki.dcc.ufba.br%252Fpub%252FAside%252FSeminariosDesignPatterns%252FGOF.JPG%3Bhttps%253A%252F%252Fbrizeno.wordpress.com%252F2011%252F12%252F12%252Fclassificacao-dos-padroes-de-projeto-gof%252F%3B448%3B299

O padrão estrutural tem os seguintes padrões: classe (Class Adapter) , Objeto(Object Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy).

Dica para memorizar os padrões de criação e estruturais:


https://rogerioaraujo.wordpress.com/2010/02/25/mnemonicos-padroes-de-projetos-gof/

Queria agradecer ao amigo Renaato.Finalmente arrumei um jeito de gravar esses benditos padroes.Thanks man!

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo