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

Herança Múltipla e Composição

O uso de composição em Python é mais aconselhável do que Heranças Múltipla?

1 resposta
solução!

Oi Fredson, tudo bom?

Acredito que em qualquer linguagem tanto a herança quanto a composição tem suas vantagens e desvantagens.

Um bom macete pra saber quando utilizar um ou outro no dia-a-dia é colocar os verbos ser e ter entre suas classes.

Por exemplo, uma classe Gerente e Funcionario.

Gerente é Funcionario?

Se a resposta pra essa pergunta for sim, você tem um vinculo semantico entre elas e, por isso, a herança pode ser uma boa saida.

Por outro loado, se o cenário fosse Gerente e SeguroDeVida

Gerente tem Seguro de vida?

Se a resposta for sim, aqui temos um caso bom de composição.

Claro que esse macete tem seus buracos mas se aplica bem pra uns 95% dos casos =)

Agora quanto a questão de heranças multiplas, em boa parte das linguagens orientadas a objeto isso nem é permitido. Isso porque o vinculo que a herança gera entre uma classe e outra é muito alto e, qualquer alteração em uma classe mãe pode gerar problemas em diversas classes filhas que a gente pode deixar passar e gerar comportamentos inespearados (bugs).

Normalmente, a herança é única pra garantir que esse alto acoplamento aconteça apenas uma vez e não gere uma arvore de propagação.

Porém, se sua herança for apenas de classes abstratas com métodos abstratos (algo parecido com uma interface) o problema do acoplamento já tende a amenizar já que estamos apenas extendendo comportamentos.

Acredito que aqui a gente tenha um problema com o suporte do python ao paradigma O.O. (interfaces fazem falta rs), mas podemos amenizar isso com boas práticas =)

Abraço