Mesmo repositorio, varios clientes

4 respostas
ezidio

Olá

Eu tenho uma entidade CondicaoPagamento, que é relacionada com uma entidade Pedido;

Para determinado cliente, só é possível criar um pedido novo com condições de pagamento vigentes, e sendo assim criei o seguinte método onde eu recupero as condições de pagamento filtrando pela vigência:

CondicaoPagamentoRepository.buscaPermitidasParaPedido(PedidoAggregate);

Porem em outro cliente, a vigência não é levada em consideração, fazendo com que retorne todas as condições de pagamento existentes.

Como eu faço isso no repositório? Crio outro método? Abstraio o método para o cliente? Uso um Strategy?

Uma particularidade é que tenho muitos clientes, cada um com um filtro diferente, e tenho medo de acontecer uma “explosão de métodos” dentro do repositório;

4 Respostas

M

eu Usaria Strategy e uma fabriqueta, isso resolveria o problema

ezidio

Um Strategy para substituir somente este método?

Condição de pagamento é somente um dos atributos que é diferente para cada cliente, tambem tenho Tabela de preço, e forma de pagamento que varia. Faria um Strategy com Factory para cada?

A

Quantos tipos de clientes você tem? Dependendo do número de “condicionais” , acho interessante sim um Strategy mesmo sendo somente um método.

ezidio

Cada cliente é uma história diferente.
Eu posso ter varias combinações diferentes de estratégia de busca de tabela de preço, condição de pagamento, tipo de cobrança; Posso ter até uma que depende da outra (O tipo de cobrança é condicionado a condição de pagamento), ou todos independentes;

Criado 27 de abril de 2011
Ultima resposta 29 de abr. de 2011
Respostas 4
Participantes 3