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.