1
resposta

Resolução do desafio desta aula!

Como ele pediu um repositório parecido com o de alunos, não criei um CRUD inteiro para a resolução, mas aqui está minha resposta para o desafio:

package br.com.alura.escola.infra.selo;

import br.com.alura.escola.dominio.aluno.Aluno;
import br.com.alura.escola.dominio.aluno.CPF;
import br.com.alura.escola.dominio.selo.Selo;
import br.com.alura.escola.dominio.selo.SeloRepository;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class RepositorioDeSelosEmMemoria implements SeloRepository {

    List<Selo> selos = new ArrayList<>();

    @Override
    public void criaSelo(Aluno aluno, String nomeDoSelo) {
        selos.add(new Selo(aluno, nomeDoSelo));
    }

    @Override
    public List<Selo> encontraSelosDoAluno(Aluno aluno) {
        return selos.stream().filter(selo -> selo.getCpfDoAluno().equals(new CPF(aluno.getCpf()))).collect(Collectors.toList());
    }
}

Espero ter alcançado o objetivo desta aula da maneira correta.

1 resposta

Olá Guilherme!

Pelo que entendi, você criou uma classe RepositorioDeSelosEmMemoria que implementa a interface SeloRepository. Essa implementação permite criar selos para alunos e também encontrar os selos de um aluno específico. Parece que você alcançou o objetivo da aula corretamente!

Agora, na próxima aula, o professor vai discutir sobre a separação de contextos no Domain Driven Design. Ele sugere separar o contexto acadêmico do contexto de gamificação. Isso significa que você pode ter um contexto que cuida das regras de matrícula, indicação e outros aspectos acadêmicos, e um contexto separado que cuida da gamificação, como pontuações e selos.

Como desafio, o professor pediu para implementar um repositório de selos. Ele sugeriu que você crie uma interface para o repositório e uma implementação em memória para facilitar. Acredito que você pode utilizar a classe RepositorioDeSelosEmMemoria que você criou como uma possível implementação desse repositório.

Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, é só me dizer.

Espero ter ajudado 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