2
respostas

Remoção da função rende na ContaEstudante

No fim do vídeo 2 é removida a herança e a função rende() da classe ContaEstudante, isso não gera um erro ao chamar a função processa()? Porque assim não teremos a função rende() para chamar quando for uma instancia de ContaEstudante.

Aula 5 - SOLID

2 respostas

Oi Leonardo, vc tem razão. Aquela lógica ali não faz mais muito sentido, já que o rende deixou de ser comum. Naquele ponto, a estratégia deve ser restringir o tipo do parâmetro para um array de ContaComum, já que é a única que rende no banco.

O que eu fiz foi colocar um method_exist se é gambiarra eu não sei... Assim caso não exista um método rende() ele não faz nada.

public function processa() 
    {
        $contas = $this->contasDoBanco();

        foreach($contas as $conta) {
            if(method_exists($conta,'rende'))                
            $conta->rende();
        }
    }