Tratando-se de DDD - Uma "entidade" implementar um Facade, é um erro?

6 respostas
MrDataFlex

por ex:

MyPersonFacade { create(); read(); update(); delete(); }

Person implements MyPersonFacade { //gets e sets create() { myRepository.store(this); } }

Se está, como eu garantiria alguns métodos BÁSICOS senão por intefaces?

6 Respostas

sergiotaborda

Sim.
Aquilo que vc escreveu não é um façade. é simplesmente o uso de interfaces.
Façade implica chamar objetos diversos para alcançar um objetivo simples.
O que vc tem ai é apenas delegação.

Além disso “entidades” não têm métodos "create(),update(), etc … "

MrDataFlex

sergiotaborda:
MrDataFlex:

Tratando-se de DDD - Uma “entidade” implementar um Facade, é um erro?

Sim.
Aquilo que vc escreveu não é um façade. é simplesmente o uso de interfaces.
Façade implica chamar objetos diversos para alcançar um objetivo simples.
O que vc tem ai é apenas delegação.

Além disso “entidades” não têm métodos "create(),update(), etc … "

Então como eu chamo elas considerando um Rich Domain? simplismente domínio ? e quais os métodos teriam então ?

Mauricio_Linhares

sergiotaborda:
MrDataFlex:

Tratando-se de DDD - Uma “entidade” implementar um Facade, é um erro?

Sim.
Aquilo que vc escreveu não é um façade. é simplesmente o uso de interfaces.
Façade implica chamar objetos diversos para alcançar um objetivo simples.
O que vc tem ai é apenas delegação.

Além disso “entidades” não têm métodos "create(),update(), etc … "

Nada impede que uma entidade tenha esses métodos, um active record é assim.

sergiotaborda

Maurício Linhares:
sergiotaborda:

Além disso “entidades” não têm métodos "create(),update(), etc … "

Nada impede que uma entidade tenha esses métodos, um active record é assim.

Mas impede que tenha apenas esses métodos… nem o active record é assim.

Mauricio_Linhares

Ah sim :slight_smile:

Apenas estes métodos também fica meio esquisito.

sergiotaborda

MrDataFlex:
sergiotaborda:

Além disso “entidades” não têm métodos "create(),update(), etc … "

Então como eu chamo elas considerando um Rich Domain? simplismente domínio ? e quais os métodos teriam então ?

Utilize DAO, DomainStore, ou Repository.

Os métodos normais de entidade pessoa. Por exemplo, get nome,get data de nascimento, idade().
Nesse caso vc estaria construindo uma interface readonly para Pessoa. O que pode ser interessante em alguns casos ( reports, listagens) para poder usar o padrão Flyweight sem grande problema.

Criado 15 de abril de 2008
Ultima resposta 15 de abr. de 2008
Respostas 6
Participantes 3