Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Quando eu sei que devo instanciar uma classe no constructor de outra?

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.

1 resposta
solução!

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.

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