Responsabilidades de servicio y las capas del repositorio
-
27-09-2019 - |
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.
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.