Skip to content
This repository has been archived by the owner on May 8, 2018. It is now read-only.

Converter os métodos estáticos das entidades em factories #51

Open
lcobucci opened this issue Oct 12, 2013 · 3 comments
Open

Converter os métodos estáticos das entidades em factories #51

lcobucci opened this issue Oct 12, 2013 · 3 comments

Comments

@lcobucci
Copy link
Member

Aqueles métodos estáticos não são uma coisa bonita, precisamos convertê-los em factories para tornar a aplicação testável.

@drgomesp
Copy link

drgomesp commented Apr 9, 2014

Duas alternativas:

Deixar a responsabilidade de criar as entidades com os repositórios:

class AttendeeRepository extends EntityRepository
{
    public function createAttendee()
    {
        ... 
    }
}

Criar um builder responsável somente por isso – já lidando com os relacionamentos e possíveis validações na hora da criação:

class AttendeeBuilder implements BuilderInterface
{
    public function createNew()
    {
        ...
    }
}

O que acham melhor? Outra sugestão?

@lcobucci
Copy link
Member Author

lcobucci commented May 5, 2014

Cara, estamos tentando seguir as ideias de DDD de acordo com o que o Eric Evans escreveu no livro dele. Dessa forma:

  1. O trabalho de instanciar entidades não é dos repositórios (deve ser de uma factory ou serviço)
  2. O "tipo de objeto" responsável por abstrair a complexidade do trabalho de instanciar é chamado "Factory" (mas sim, na maioria dos casos segue o design pattern builder).

@drgomesp
Copy link

drgomesp commented May 5, 2014

Então, @lcobucci, como eu disse:

Criar um builder responsável somente por isso – já lidando com os relacionamentos e possíveis validações na hora da criação

Acho que é a melhor solução – e vai de encontro às ideias do Evans.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants