Pular para o conteúdo principal

Questão de Programação — Programação orientada a aspectos — Quadrix 2024

ProgramaçãoProgramação orientada a aspectos
Código
qg349489
Banca
Quadrix
Órgão
CREFITO - 8ª Região (PR)
Ano
2024
Nível
Superior
Cargo
Analista de Sistemas
No que concerne às técnicas de modelagem dimensional, à gestão eletrônica de documentos e à programação orientada a aspectos, julgue o item. A programação orientada a aspectos (POA) resume‑se à criação de herança entre classes para a reutilização de código.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Programação orientada a aspectos (POA)

Gabarito: letra E (Errado). A programação orientada a aspectos (POA) não se resume à criação de herança entre classes; ela é um paradigma que visa modularizar preocupações transversais (cross-cutting concerns), como logging, segurança e transações, separando-as do código de negócio. A herança é um conceito da programação orientada a objetos (POO), não da POA.

A POA surgiu para resolver um problema da POO: a dispersão e o emaranhamento de código. Em sistemas complexos, certas funcionalidades (como auditoria, tratamento de erros, controle de permissões) precisam ser aplicadas em vários pontos do código, o que gera repetição (dispersão) e mistura com a lógica principal (emaranhamento). A POA introduz o conceito de aspecto, que encapsula essas preocupações transversais. Um aspecto define pointcuts (pontos de corte), que especificam onde a lógica transversal deve ser aplicada, e advices (conselhos), que são os trechos de código executados nesses pontos. Assim, a POA complementa a POO, permitindo que o código de negócio fique mais limpo e focado.

Um exemplo prático: imagine um sistema bancário com várias classes (Conta, Cliente, Transação). Se precisarmos registrar em log toda operação de débito, sem POA teríamos que adicionar chamadas de log em cada método de débito de cada classe. Com POA, criamos um aspecto LoggingAspect com um pointcut que captura a execução de qualquer método anotado com @Debito e um advice que registra o log antes e depois da execução. O código de negócio das classes permanece inalterado, e a preocupação transversal (logging) fica isolada no aspecto.

A confusão entre POA e herança é comum, mas são conceitos de paradigmas diferentes. A herança é um mecanismo da POO para reutilização de código e estabelecimento de hierarquias (é um relacionamento "é um"). A POA é um paradigma que lida com a modularização de comportamentos que atravessam várias classes. Enquanto a herança promove reuso vertical (entre classes pai e filha), a POA promove a separação de interesses horizontais (transversais).

A banca explora exatamente essa confusão: o candidato que não domina o conceito de POA pode associá-la erroneamente à herança, pois ambos envolvem reutilização de código. No entanto, a POA vai muito além, oferecendo mecanismos específicos (aspectos, pointcuts, advices) para tratar preocupações transversais, algo que a herança não resolve adequadamente.

Guarde a distinção central: POA ≠ herança. A POA é um paradigma complementar à POO, focado em separar preocupações transversais, enquanto a herança é um mecanismo da POO para reuso de código. É exatamente essa fronteira que a questão testa.

Programação orientada a aspectos (POA)
  • 1Objetivo
    • Modularizar preocupações transversais
    • Separar do código de negócio
  • 2Problema que resolve
    • Dispersão (repetição)
    • Emaranhamento (mistura)
  • 3Conceitos
    • Aspecto
    • Pointcut (onde aplicar)
    • Advice (o que executar)
    • Join point
  • 4Exemplo
    • Logging em operações de débito
  • 5Relação com POO
    • Complementa, não substitui
    • Herança = reuso vertical
    • POA = interesses transversais
LEVEL · soulevel.com.br

Alternativa E — ❌ Errada ⟵ GABARITO

A afirmação está errada porque reduz a POA a um mecanismo da POO (herança). A POA é um paradigma próprio, com conceitos como aspecto, pointcut, advice e join point, voltados para a modularização de preocupações transversais. A herança é um conceito da POO, não da POA. A POA não se resume a herança; ela oferece uma abordagem diferente para reutilização e organização de código, tratando de interesses que atravessam múltiplas classes.

Gabarito: letra E (Errado).

Link permanente: /questoes/qg349489