¿Cuál es la diferencia entre MVP y arquitectura limpia?

13

La pregunta se explica por sí sola, solo para agregar mis pensamientos:
hasta donde he leído, la capa de presentación en Clean Arch tiene la misma responsabilidad que en MV en MVP.

¿Cómo se decide elegir un patrón en lugar del otro?

Mehrdad Shokri
fuente
MVP es parte de una arquitectura limpia. Este artículo debe leerse androidwave.com/android-mvp-architecture-for-beginners-demo-app
Surya Prakash Kushawah

Respuestas:

15

Lo que Bob Martin llamó " Arquitectura limpia " es más una "metaarquitectura", una guía de alto nivel para crear arquitecturas en capas. No dice nada como

"Debe haber una capa de Modelo, una capa de Vista y una capa de Presentación, y deben implementarse usando MVP ",

contiene solo reglas más generales para las capas como "las dependencias deben ir desde los círculos exteriores a los círculos internos, no viceversa" . Y dado que en MVP, la Vista (= UI) puede conocer al Presentador, pero el Presentador está desacoplado de la Vista por una interfaz, MVP es solo una de las muchas soluciones posibles que cumple con esta regla.

Por supuesto, uno puede usar MVP dentro de un sistema de "Arquitectura limpia", pero este no es el único enfoque correcto. Cualquier diseño de interfaz de usuario donde las "capas internas" no sepan nada especial sobre la interfaz de usuario, y donde la interfaz de usuario siga también las otras reglas de "Arquitectura limpia" descritas en el artículo de Bob Martin estará bien.

Doc Brown
fuente
si sigo el patrón MVP, ¿se garantiza que no violé las reglas de arquitectura limpia?
Mehrdad Shokri
1
@Mehrdad: no. MVP solo lo ayuda a obtener la "Regla de dependencia" correcta, y solo entre las capas View & Presenter, así como entre Presenter y Model, nada menos y nada más. Todavía tiene que preocuparse por todas las otras cosas descritas en el artículo de Bob Martin. Por ejemplo, MVP por sí solo no impide que nadie pase estructuras de datos complejas entre capas (a diferencia de las estructuras de datos simples mencionadas en ese artículo que deberían usarse para cruzar límites).
Doc Brown