Disclaimer
Este texto foi inicialmente concebido pela IA Generativa em função da transcrição do episódio do nosso canal, Dev Eficiente. Se preferir acompanhar por vídeo, é só dar o play.
Introdução
No episódio de hoje, vamos falar sobre o que considero o "feijão com arroz" da programação orientada a objetos: a coesão e o encapsulamento. Essas são características fundamentais que podem fazer toda a diferença na manutenção e na evolução de sistemas. Apesar de serem princípios antigos, ainda vejo projetos onde não são utilizados de forma consistente.
A ideia é simples: aproveitar os recursos básicos da linguagem para aumentar a coesão e facilitar o trabalho com o código. Vamos explorar como isso pode ser feito com exemplos práticos e discutir os benefícios desse enfoque.
O Princípio da Coesão
Coesão, no contexto de programação orientada a objetos, significa que os atributos e métodos de uma classe estão relacionados e trabalham juntos de forma consistente. Isso pode ser alcançado através do encapsulamento, criando métodos que operam sobre os atributos internos da classe.
Por mais básico que pareça, muitos projetos ainda ignoram esse princípio. Classes de serviço e casos de uso muitas vezes acumulam lógicas que poderiam estar melhor organizadas dentro de entidades ou abstrações apropriadas. Isso compromete a manutenção do código e aumenta sua complexidade.
Exemplo: Trabalhando com Classes de Endereço
O código aqui foi inspirado num projeto da Apache chamado OffBiz. O código dele pode ser encontrado no
SOCIAL SHARE CARD GENERATOR