1
resposta

Feedback - Exercício incoerente com a video aula

O exercício não apresentou coerência com relação ao vídeo, pessoal! Conforme induz a sequência, fiz toda atividade entendendo que seria da seguinte maneira:

1-Criei uma interface Relatorio com o metodo "void imprimir(Conta conta);"

2-Criei uma classe abastrata que implementa a interface Relatorio e mais tres metodos: "protected boolean imprimirCompleto();", "protected void impressaoCompleta();" e "protected void impressaoSimples()".

3-Neste ponto fiquei me perguntando qual seria a regra de negócio que me faria decidir entre impressaoCompleta() ou impressaoSimles() quando da criação das classes RelatorioCompleto e RelatorioSimples. No caso do imposto, sabíamos.

Em suma, gostaria de deixar meu feedback dizendo que video aula, de modo algum, encaminha para uma resposta parecida com a do gabarito.

1 resposta

Olá, Alessandro! Tudo bem com você?

Peço desculpas pela demora no retorno a sua mensagem.

Agradeço por compartilhar sua experiência e feedback sobre o exercício do curso. O seu feedback é uma ferramenta valiosa para o aprimoramento do curso, e sua contribuição pode ajudar a melhorar a experiência de aprendizado de outros estudantes. É importante que os exercícios estejam alinhados com o conteúdo apresentado nas videoaulas para evitar confusões e garantir um aprendizado consistente.

Nesse caso, podemos obter uma orientação mais precisa sobre o exercício na opção "Opnião do professor", que é um recurso disponível na atividade para nos ajudar a construir uma resposta. Nela vemos que uma forma de resolver o desafio é criando um template do relatório:


    abstract class Relatorio {
      protected abstract void cabecalho();
      protected abstract void rodape();
      protected abstract void corpo(List<Conta> contas);

      public void imprime(List<Conta> contas) {
        cabecalho();
        corpo(contas);
        rodape();
      }
    }

Após isso, implementar os diferentes relatórios, preenchendo somente os "buracos" do template:



    class RelatorioSimples extends Relatorio {
      protected void cabecalho() {
        System.out.println("Banco XYZ");
      }

      protected void rodape() {
        System.out.println("(11) 1234-5678");
      }

      protected void corpo(List<Conta> contas) {
        for(Conta conta : contas) {
          System.out.println( conta.getNome() + " - " + conta.getSaldo() );
        }
      }
    }

    class RelatorioComplexo extends Relatorio {
      protected void cabecalho() {
        System.out.println("Banco XYZ");
        System.out.println("Avenida Paulista, 1234");
        System.out.println("(11) 1234-5678");
      }

      protected void rodape() {
        System.out.println("banco@xyz.com.br");
        System.out.println(Calendar.getInstance().getTime());        
      }

      protected void corpo(List<Conta> contas) {
        for(Conta conta : contas) {
          System.out.println( conta.getNome() + " - " + conta.getNumero() + " - " + conta.getAgencia() + " - " + conta.getSaldo() );
        }
      }
    }

Devemos nos lembrar também que os exercícios são uma oportunidade de aplicar o conhecimento adquirido e, às vezes, podem apresentar desafios adicionais para estimular o raciocínio e a criatividade na resolução do problema.

Espero ter ajudado.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software