Questão nº 43
Questão de Tecnologia da Informação · FCC SEGEP-MA 2018 (nº 43)
A intenção do padrão de projeto Abstract Factory é
- Adefinir uma interface para a criação de um objeto, deixando as subclasses decidirem que classe instanciar. Delega a instanciação para as subclasses.
- Bconverter a interface de uma classe na interface esperada pelos clientes. Permite que classes com interfaces incompatíveis trabalhem em conjunto.
- Cfornecer uma interface para a criação de famílias de objetos relacionados ou dependentes sem especificar suas classes completas. (alternativa correta)
- Dgarantir que uma classe tenha somente uma instância e fornecer um ponto global de acesso à mesma.
- Eseparar a construção de um objeto complexo de sua representação, de modo que o mesmo processo de construção possa criar diferentes representações.
Resposta comentada
Gabarito Alternativa C
O padrão de projeto Abstract Factory serve para criar grupos de objetos que se encaixam e trabalham juntos, sem que o código que os usa precise saber os nomes exatos das classes desses objetos. É como uma "fábrica de fábricas", onde você escolhe o tipo geral de produtos que quer (ex: produtos para Windows ou para Mac) e ela te entrega todos os componentes compatíveis para aquele tipo.
(A) Incorreta: Esta é a descrição do padrão Factory Method, que foca na criação de um único objeto, delegando a decisão de qual classe instanciar para as subclasses. A armadilha aqui é que ambos são padrões de criação e envolvem subclasses, mas o Factory Method é para um item, enquanto Abstract Factory é para um conjunto de itens.
(B) Incorreta: Esta é a descrição do padrão Adapter, que permite que classes com interfaces diferentes colaborem, adaptando uma interface para outra.
(C) Correta: Esta é a definição precisa do padrão Abstract Factory. Ele permite criar "famílias de objetos relacionados ou dependentes" (ex: todos os componentes de uma interface gráfica para um sistema operacional específico) sem que o código cliente precise conhecer as classes concretas desses objetos, promovendo o desacoplamento.
(D) Incorreta: Esta é a descrição do padrão Singleton, que garante que uma classe tenha apenas uma instância e fornece um ponto de acesso global a ela.
(E) Incorreta: Esta é a descrição do padrão Builder, que separa a construção de um objeto complexo de sua representação, permitindo que o mesmo processo de construção crie diferentes representações do objeto.
Fonte: FCC SEGEP-MA 2018 Analista Executivo - Programador de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.