Pregunta

Creo que la capa de servicio/aplicación es lo mismo que Larman describe como controlador de agarre, siendo el primer objeto más allá de la capa de GUI que delega a la capa de dominio, y debe ser reutilizable de una GUI diferente.

La capa de servicio (Evans) es la misma que la capa de aplicación (Fowler) porque el propio Fowler lo dice, en su "bliki" sobre el "modelo de dominio anémico": http://martinfowler.com/bliki/anemicdomainmodel.html

Cita: "Capa de aplicación [su nombre para la capa de servicio]: define los trabajos que se supone que el software debe hacer y dirige los objetos de dominio expresivo para resolver problemas. Las tareas por las que esta capa es responsable son significativas para el negocio o necesarios para la interacción con Las capas de aplicación de otros sistemas. Esta capa se mantiene delgada. No contiene reglas o conocimientos comerciales, pero solo coordina las tareas y los delegados trabajan en colaboraciones de objetos de dominio en la siguiente capa. No tiene estado que refleje la situación comercial, Pero puede tener un estado que refleje el progreso de una tarea para el usuario o el programa ".

Ahora considere la descripción anterior (y también vea el libro PEAA de Fowler, con respecto a la identificación de métodos de capa de servicio de los casos de uso) y también considere la imagen en la descripción de la capa de servicio de Fowler que ilustra la capa de servicio la primera capa después de la "interfaz de usuario" AT "AT esta url: http://martinfowler.com/eaacatalog/servicelayer.html

Ahora compare la descripción de la capa de servicio/aplicación mencionada anteriormente con algunas de las palabras de Larman sobre el controlador GRASP (en la tercera edición de su libro más vendido "Aplying UML and Patterns", edad 302-306): "... Primer objeto Más allá de la capa de interfaz de usuario que recibe y coordenan ("controla") una operación del sistema ... "" ... representa un escenario de caso de uso dentro del cual ocurre el evento del sistema ... "" ... normalmente, un controlador debe delegarse Otros objetos El trabajo que debe hacerse; coordina o controla la actividad. No hace mucho trabajo en sí mismo ... "

Creo que la capa de controlador GRASP de Larman es lo mismo que la capa de aplicación/servicio de Evans/Fowler. ¿Otras personas no están de acuerdo? Luego, explique las diferencias significativas entre estos conceptos y algún ejemplo de clase de controlador en lugar de la clase de servicio/aplicación.

Mi pregunta nace porque algunos dicen que la creación de objetos de dominio del modelo es responsabilidad del controlador, en lugar de la otra capa de servicio / aplicación. Pero, ¿podría darme un ejemplo de clase de capa de servicio y la diferencia entre la clase de controlador?

¿Fue útil?

Solución

En realidad, hay controlador de interfaz de usuario y controlador de dominio como los patrones más usados.

El controlador UI coordina el acceso a la vista, en un patrón MVC.

El controlador de dominio coordina el acceso al dominio, y se llama capa de servicio (Fowler, que prefiero) o la capa de aplicación (Evans).

Ambas son capas de indirección (patrón de fachada), utilizadas para desacoplar clases entre subsistemas/capas. Aporta modularidad y mejor mantenimiento (puede intercambiar el dominio por servicios remotos o ver la vista de HTML para flexionar, y simplemente cambiar la capa de indirección)

El controlador de agarre parece ser un híbrido de ambos. Le recomiendo que use este término solo para análisis, no para implementación.

¡Espero eso ayude!

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