Pregunta

Sólo tratando de conseguir mi cabeza alrededor de las responsabilidades de la capa de servicio y la capa de repositorio al guardar un objeto a mi tienda persistencia.

Mi actual con pie es la siguiente:

En mi controlador de E ha creado un objeto "Nota" de los datos presentados por el usuario (de forma). Entonces, el usuario llama "Guardar" en el "NoteService" (que es allí a través de la inyección de dependencia).

Dentro del método "Guardar" en el "NoteService" llevo a cabo mi validación de la lógica de negocio y luego pasar el objeto "Nota" al método "Guardar" de la "NoteRepository".

El método "Guardar" de la "NoteRepository" después comprueba si hay una clave principal existente sobre este objeto y si es así, obtener de ese objeto desde el PP y lo actualiza de propiedades utilizando el objeto "Nota" pasa a través y es entonces cuando vuelve a guardar en la base de datos. Si no hay ninguna clave primaria, entonces el objeto se guarda simplemente en el PP y el entonces regresó al servicio con él es la clave primaria de nueva creación.

¿Fue útil?

Solución

Su separación de las preocupaciones suena bastante bien para mí. Seguimos el mismo patrón, pero tienden a añadir una capa más correcto sobre la capa de repositorio. Lo llamamos la capa de dominio y realizar todas nuestra lógica de negocio en ese país. Nuestra capa de servicios es sólo un paso a través de nuestro dominio en caso de que necesite publicar cualquiera de nuestros servicios a un ESB en el futuro.

El mayor beneficio de lo que está haciendo no se saturan todos los negocios y la lógica DB en el controlador que muchas personas tienden a hacer. Siempre quiere que sus controladores para ser lo más ligero posible si realmente quiere seguir MVC.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top