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

Lopping com a solução de composição

Eu fiquei com uma dúvida: na solução que usa composição como fica o looping em uma coleção que contém tanto contas comum quanto contas de estudante?

Pois o que permite o looping usando a abstração (conta comun) não existe mais na solução com composição.

Seria o caso de criar uma interface para ter uma abstração para todos os tipos de conta e assim poder fazer o looping?

1 resposta
solução!

Olá Pedro, tudo certo?

Neste caso, uma boa alternativa seria uma interface, por exemplo IInvestidor, mais generalista para atender esse requisito das contas que possam somar investimentos, onde a ContaEstudate não assinasse esse contrato. Então, as contas de estudantes nem poderiam entrar nessa lista de investidores.

Teriam outros meios de impedir que as contas de estudantes não possuíssem o método SomarInvestimento(), mas ContaEstudate não deveria herdar de ContaComum, para não ficar sobrando um método que não faz o menor sentido de existir em ContaEstudante. Num banco de dados, as contas de estudantes poderiam até ficar em uma tabela separada das contas comuns, para evitar esse tipo de problemas, por ser objetos diferentes.

Se uma classe mãe tem um método ou propriedade, tem que fazer muito sentido, para todas as classes que herdam dela, terem também.

Espero ter ajudado!