Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Herança e reutilização de código

Estou na parte "Herança e reutilização de código" do curso do javascript avançado, mas costumo escutar que herança deve ser sempre evitada. A questão é: Como saber quando usar e quando evitar?

1 resposta
solução!

Oi Fernando, tudo bem? Essa discussão pode ir bem longe e pode se prolongar mais ainda levando considerações de recursos de linguagem de forma particular. Porém, existe uma forma rápida de resolver esse seu questionamento.

Herança sempre existirá entre dois componentes, certo? O que herda e de quem este herda. Fará sentido usar sempre que um componente tiver relação é um com o outro. Exemplo:

Se você tem uma classe geral que define um controller chamado AppController, e precisa fazer uma série de roteamentos para o o Home do seu projeto, faz sentido criar um HomeController, que herde o comportamento de AppController? Sim, os dois são controllers, concorda? Em muitos frameworks você vai encontrar esse caso.

Onde não usar? Onde o relacionamento é um não faz nenhum sentido. Exemplo: Você tem um componente que conecta com o banco de dados, e o chama de Database, então você tem uma classe de moninio que trata de usuários, mas que precisa conectar com o banco. Neste caso, faz sentido herdar? Usuario é um Database? A resposta curta é não. Por isso neste caso não é uma boa ideia usar.

Obs: Você pode acabar encontrando por ai na prática o segundo exemplo funcionando em algumas aplicações, porém, não exatamente dessa forma, pois alguns padrões de projetos podem usar uma abordagem parecida com esta, por isso, recomendo fortemente que estude padroes de projeto também, como apoio na construção do seu conhecimento.

Espero ter ajudado, bons estudos!