5. Programação Orientada a Objetos
O poder real da OO: polimorfismo para inverter dependências.
Resumo
- Encapsulamento e herança não são novidade da OO: C já fazia (até melhor no encapsulamento).
- Polimorfismo existia via ponteiros de função (ex.: drivers de IO no UNIX), porém perigoso.
- OO torna polimorfismo seguro e conveniente: elimina disciplina manual de ponteiros.
- Grande poder: inversão de dependência. Código-fonte pode depender no sentido oposto ao fluxo de controle.
- Resultado: arquiteto controla todas as dependências → plugins, deploy e desenvolvimento independentes.
Perguntas-chave
responda de cabeça, depois abraQual a principal contribuição da OO para a arquitetura?
Polimorfismo seguro, que permite inverter dependências e criar arquitetura de plugins.
C tinha encapsulamento?
Sim, e perfeito: header com declarações, implementação escondida no .c. C++ e Java até enfraqueceram isso.
O que é inversão de dependência?
Fazer a dependência de código apontar contra o fluxo de controle, via interface no lado de alto nível.
Exercícios de fixação
0/5 respondidas1.
Segundo o autor, qual característica é o verdadeiro poder da OO para a arquitetura?
2.
Um módulo de regras de negócio chama o banco de dados em tempo de execução. Com OO, como fazer o código do banco depender das regras e não o contrário?
3.
Por que o polimorfismo via ponteiros de função em C era considerado perigoso?
4.
Qual benefício direto a inversão de dependência traz para equipes?
5.
Sobre encapsulamento em C vs. C++/Java, o autor afirma que: