Resumo de Arquitetura de Software - Arquitetura Orientada a Objetos

Arquitetura Orientada a Objetos

Arquitetura Orientada a Objetos (AOO)

Arquitetura Orientada a Objetos (AOO) é um padrão de design estrutural que organiza sistemas em objetos interconectados, aplicando princípios como encapsulamento, herança, polimorfismo e abstração. É amplamente utilizada em concursos públicos de TI/Tecnologia.

Princípios Fundamentais

  • Abstração: Modela entidades do mundo real como classes, destacando atributos e comportamentos relevantes.
  • Encapsulamento: Oculta detalhes internos, expondo apenas interfaces controladas (métodos públicos).
  • Herança: Permite que classes derivadas compartilhem características de classes base (reuso de código).
  • Polimorfismo: Objetos de classes diferentes podem responder à mesma mensagem de formas distintas.

Vantagens

  • Modularidade e reuso de código.
  • Facilidade de manutenção e extensibilidade.
  • Alinhamento com paradigmas OO (Java, C#, Python).

Padrões Relacionados (Cobrados em Concursos)

  • GRASP: Padrões como Creator, Controller e High Cohesion.
  • GoF: Factory Method, Singleton, Observer.
  • MVC: Separação em Model-View-Controller (comum em frameworks).

Diferença para Outras Arquiteturas

Contrasta com arquiteturas como Procedural (focada em funções) ou Baseada em Componentes (foco em reuso binário). A AOO prioriza objetos como unidades de composição.

Dicas para Concursos

  • Domine SOLID (extensão dos princípios OO).
  • Reconheça diagramas UML (Classes, Sequência).
  • Relacione AOO com padrões de projeto clássicos.