Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Criar aluno usando a FabricaDeAluno

Qual seria a sintaxe para criar um aluno utilizando a Fabrica no lugar deste método na classe MatricularAlunoDTO:

    public Aluno criarAluno() {
        return new Aluno(new Cpf(cpfAluno), nomeAluno, new Email(emailAluno));
    }
4 respostas

Oi Cristian,

Poderia ser utilizando a fábrica dentro do DTO:

public Aluno criarAluno() {
    return new FabricaDeAluno()
        .comNomeCPFEmail(nomeAluno, new CPF(cpfAluno), new Email(emailAluno))
        .criar();
}

Certo, mas pelo que eu tinha entendido das aulas (e posso ter entendido errado) o retorno do metodo "comNomeCPFEmail" é uma "FabricaDeAluno" e não um "Aluno".

    public FabricaDeAluno comNomeCPFEmail(String nome, String cpf, String email) {
        this.aluno = new Aluno (new CPF(cpf), nome, new Email(email));
        return this;
    }

Outra coisa que não entendi na sua resposta, foi o método ".criar()" no final. De onde ele está vindo?

Obrigado pela resposta.

solução!

O método criar é justamente o que instancia um objeto Aluno para devolver.

Dá uma assistida novamente na aula de factory que tem a explicação com o método criar.

Perfeito. Agora reassistindo entendi. O vídeo tem uma finalização e depois, bem no final, um corte onde você volta pra explicar justamente esse ponto que fiquei em dúvida. Eu tinha parado de assistir antes do corte por isso fiquei sem a explicação completa.

Obrigado novamente.