rvf, software e mitos

Posts Tagged ‘herança

É incrível pensar que herança significa reutilizar código e ainda querer dizer que sabe Orientação a Objetos. Quem diz isso garanto que faz coisas do tipo:

PessoaFisica extends Pessoa

PessoaJuridica extends Pessoa

Muito bonito, reutilizou dados em comum entre PF e PJ, mas e o principio de OO, para onde foi? Para o lixo! Você simplesmente disse que, uma pessoa física é filho do mesmo pai de uma pessoa jurídica, um ser humano pode ser cosiderado irmão de uma empresa? Epa! Tem algo errado aí. Sim, isso está absolutamente errado se tratando de OO. “Ahh, mas meu professor disse que reutilizar código é bom” – Ok! Mas ele esqueceu de dizer que, deve haver uma coerência no meio disso, onde a reutilização de código se torna conseqüência de um bom modelo orientado a objetos e não uma obrigatoriedade, onde você tem a classe ChuckNorris com todos os comportamentos e atributos possíveis no universo, e faz todas suas subclasses herdarem ela.

Prefira a composição!

Como eu resolveria o problema da PessoaFisica e PessoaJuridica? Simples, usando composição. Vamos supor que você estivesse usando a classe Pessoa apenas para reutilizar dados cadastrais, ótimo, crie a classe DadosCadastrais e faça ela compor todas as classes que utilizem estes dados.

Quando usar herança?

Quando você definitivamente está certo que sua classe é uma especialização de alguma outra classe, que BEM PROVAVELMENTE será provida via polimorfismo. Por exemplo: ControleRemotoUniversal extends ControleRemoto.

A reutilização de código acontece uma vez que você ganha a componentização, onde você transformará sua família de objetos em um componente que se comunica muito bem com os objetos internos e externos. Isso é reutilizar código.

Cuidado com o que você aprende na faculdade…

Anúncios


  • Nenhum
  • Adolfo: Muito bom este post. Acho que tudo isso pode ser resumido em uma única palavra: humildade (isso não significa não defender seu ponto de vista).
  • Adolfo: Olá Robson, Alguns modelos até consegui identificar em alguns projetos que já trabalhei... Com algumas coisas eu concordo e outras não... Q
  • milah: Eu tenho um Amazon L71. Até 2 meses atrás não tive problemas com ele. Já troquei a placa de lan dele, por uma que capta melhor wi-fi. Só que ago