Resumo de Arquitetura de Software - Arquitetura em camadas

Arquitetura em camadas

Arquitetura em Camadas

Modelo de organização de software onde os componentes são divididos em camadas hierárquicas, cada uma com responsabilidades específicas. Comunicação ocorre preferencialmente entre camadas adjacentes.

Principais Características

  • Abstração crescente: Cada camada oculta complexidade das inferiores
  • Baixo acoplamento: Camadas superiores dependem apenas das imediatamente inferiores
  • Alta coesão: Cada camada possui responsabilidade bem definida

Vantagens

  • Facilita manutenção e evolução
  • Permite reutilização de camadas
  • Simplifica testes unitários
  • Distribuição clara de responsabilidades

Desvantagens

  • Possível overhead de comunicação
  • Dificuldade em camadas com alta interdependência
  • Potencial violação do princípio de separação de interesses

Exemplos Clássicos

  • 3-tier: Apresentação → Lógica → Dados
  • OSI Model: 7 camadas de rede
  • MVC: Model-View-Controller (variação)

Padrões Relacionados

  • Camada Anti-Corrupção (DDD)
  • Inversão de Dependência
  • Facade