Padrões de Projeto (Design Patterns) – Classificação GoF
Gabarito: letra A. A sequência correta é 1-2-3-3-2-1, ou seja: Singleton é criacional (1), Adapter é estrutural (2), Observer é comportamental (3), Strategy é comportamental (3), Flyweight é estrutural (2) e Builder é criacional (1). A classificação segue a obra clássica da Gangue dos Quatro (GoF), que divide os padrões em três categorias conforme seu propósito.
A banca cobra o conhecimento da classificação dos padrões de projeto conforme o livro Design Patterns: Elements of Reusable Object-Oriented Software. Cada padrão tem uma finalidade específica:
Padrões Criacionais (1): abstraem o processo de criação de objetos, tornando o sistema independente de como seus objetos são criados, compostos e representados. Exemplos: Singleton, Builder, Factory Method, Abstract Factory, Prototype.
Padrões Estruturais (2): preocupam-se com a composição de classes e objetos para formar estruturas maiores. Exemplos: Adapter, Flyweight, Bridge, Composite, Decorator, Facade, Proxy.
Padrões Comportamentais (3): focam nos algoritmos e na atribuição de responsabilidades entre objetos, descrevendo padrões de comunicação. Exemplos: Observer, Strategy, Command, Iterator, Mediator, State, Template Method, Visitor.
Análise da sequência
Para cada padrão listado:
Singleton: garante uma única instância de uma classe e fornece um ponto global de acesso. → Criacional (1).
Adapter: converte a interface de uma classe em outra interface esperada pelos clientes. → Estrutural (2).
Observer: define uma dependência um-para-muitos entre objetos para que quando um objeto mude de estado, todos os seus dependentes sejam notificados. → Comportamental (3).
Strategy: define uma família de algoritmos, encapsula cada um e os torna intercambiáveis. → Comportamental (3).
Flyweight: usa compartilhamento para suportar eficientemente um grande número de objetos de granularidade fina. → Estrutural (2).
Builder: separa a construção de um objeto complexo de sua representação, permitindo o mesmo processo de construção criar diferentes representações. → Criacional (1).
Portanto, a sequência correta de cima para baixo é: 1 (Singleton), 2 (Adapter), 3 (Observer), 3 (Strategy), 2 (Flyweight), 1 (Builder). Essa combinação só aparece na alternativa A.
Padrão | Categoria |
|---|
Singleton | Criacional (1) |
Adapter | Estrutural (2) |
Observer | Comportamental (3) |
Strategy | Comportamental (3) |
Flyweight | Estrutural (2) |
Builder | Criacional (1) |
Gabarito: letra A.