Questão nº 18
Questão de Desenvolvimento de Sistemas · FGV SEFAZ-MG 2022 - Tarde (nº 18)
Os padrões de projeto de software (design patterns) tiram proveito máximo dos pilares da orientação a objetos. Usemos como exemplo o padrão Abstract Factory, que é um padrão de projeto criacional que permite produzir famílias de objetos relacionados sem especificar suas classes concretas.
O principal pilar da orientação a objetos usado nesse design pattern é
- Ao polimorfismo.
- Ba herança.
- Co encapsulamento.
- Da abstração. (alternativa correta)
- Ea sublevação.
Resposta comentada
Gabarito Alternativa D
O padrão Abstract Factory permite criar famílias de objetos relacionados usando interfaces genéricas, sem que o código cliente precise saber os tipos exatos dos objetos que estão sendo criados.
- (A) Incorreta: O polimorfismo é um mecanismo essencial que o Abstract Factory utiliza (por exemplo, quando diferentes fábricas concretas implementam o mesmo método de criação de forma distinta), mas não é o pilar principal que o padrão visa estabelecer. O polimorfismo é a capacidade de um objeto assumir muitas formas, e aqui ele serve para que o método
criarProduto()se comporte de maneira diferente dependendo da fábrica concreta. A armadilha é que o polimorfismo é muito visível na execução do padrão, mas ele é uma consequência e um habilitador da abstração que o padrão oferece. - (B) Incorreta: A herança é frequentemente usada para construir as hierarquias de classes tanto para as fábricas quanto para os produtos (classes abstratas e suas implementações concretas). No entanto, herança é uma ferramenta para alcançar a abstração e o polimorfismo, não o pilar central que o Abstract Factory mais explora para seu propósito principal.
- (C) Incorreta: O encapsulamento é sempre uma boa prática em OOP e está presente no Abstract Factory, pois ele esconde os detalhes de como os objetos são criados. Contudo, o encapsulamento é um pilar mais geral e não é o principal que define a essência e o benefício central deste padrão específico. Ele serve para proteger a implementação, mas a finalidade do padrão vai além disso.
- (D) Correta: A abstração é o pilar principal. O Abstract Factory abstrai o processo de criação de objetos, permitindo que o código cliente trabalhe com interfaces genéricas (fábricas abstratas e produtos abstratos) em vez de classes concretas. Isso significa que o cliente não precisa se preocupar com os detalhes de implementação ou os tipos específicos dos objetos que estão sendo criados, apenas com o "que" eles representam. O nome do padrão ("Abstract Factory") já indica essa ênfase na abstração.
- (E) Incorreta: "Sublevação" não é um pilar reconhecido da orientação a objetos.
Fonte: FGV SEFAZ-MG 2022 - Tarde Auditor Fiscal - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.