2011-02-01 12 views
6

Se me confunde cuándo usar eventos de dominio y cuándo utilizar el envío doble. Udi nos alienta a usar eventos de dominio para mantener el encapsulamiento del modelo y alejarlo del diseño anémico, pero en mi opinión los eventos de dominio solo pueden usarse después de que la operación se haya realizado o terminado abruptamente, no en el momento en que la operación está en progreso.Cuándo usar evento de dominio frente a envío doble

Por ejemplo: mientras soluciono la lógica de algunos negocios, necesito acceder al repositorio y, en base al valor, puedo generar eventos de dominio. Pero la pregunta es cómo el modelo puede acceder al repositorio a la hora de resolver la lógica comercial, aquí, en mi opinión, podríamos usar el doble despacho.

Por favor dígame, ¿las declaraciones anteriores son válidas o no?

Respuesta

5

Ha habido bastante talking about this.

personalmente aggree con Szymon Pobiega:

mi propia regla general es utilizar eventos de dominio (como por desscribed UDI) como una forma preferida de la COI cuando la interacción se puede hacer en un solo sentido. Si no puede, utilizo el envío doble.


Por ejemplo: -: mientras que la solución de algunos lógica de negocio i necesidad de acceso al repositorio, y luego sobre la base de valor, i puede provocar eventos de dominio.

Su raíz de agregado debe contener todo lo que necesita para realizar la operación. No debería haber necesidad de repositorio mientras se hace algo. La raíz agregada dibuja límites transaccionales.

+0

hay casos en los que necesita llamar a servicios web externos para obtener un valor dentro de una entidad, ¿cómo haría esto? ¿doble despacho? dentro de una entidad, public void DoSomething (servicio de aplicación de aplicaciones) {... var rate = service.GetCurrentRate(); ....} – sawe

+0

Estoy de acuerdo con @sawe Creo que no hay otra solución real para cuando se consume un servicio web externo? El doble despacho parece ser la única opción. –

Cuestiones relacionadas