Olá, quando eu decido que devo instanciar uma classe dentro do controller de outra ? Igual feito em Negociações dentro de Negociação Controller ? Não consigo abstrair isso.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, quando eu decido que devo instanciar uma classe dentro do controller de outra ? Igual feito em Negociações dentro de Negociação Controller ? Não consigo abstrair isso.
Fala ai Santi, tudo bem? Isso vai depender muito de cada estilo arquitetural que você está seguindo.
Eu diria que dentro do construtor é um bom lugar para inicializarmos informações que nossa classe precisa.
Então, sempre que você precisar inicializar alguma informação eu diria que seria esse o momento de usar o construtor.
Isso porque as vezes você pode ter uma classe Pessoa que tem um endereço Endereco, CPF, Email, etc...
Então isso poderia estar no construtor:
class Pessoa {
constructor(dados) {
this.nome = dados.nome
this.endereco = new Endereco(dados.endereco)
this.cpf = new CPF(dados.cpf)
}
}Então a gente teria um modelo Pessoa que possuí value objects chamados Endereco e CPF.
Em alguns padrões de arquitetura você pode ver que será feito de um set:
class Pessoa {
constructor(dados) {
this.setNome(dados)
this.setEndereco(dados)
this.setCpf(dados)
}
setNome(dado) {
this.nome = dados.nome
}
setEndereco(dado) {
this.endereco = new Endereco(dados.endereco)
}
}Cada abordagem tem suas vantagens e desvantagens.
Espero ter ajudado.