A pergunta é auto-explicativa, apenas para acrescentar meus pensamentos:
Até onde eu li, a camada de apresentação no Clean arch tem a mesma responsabilidade que no MV no MVP.
Como alguém decide escolher um padrão em vez do outro?
A pergunta é auto-explicativa, apenas para acrescentar meus pensamentos:
Até onde eu li, a camada de apresentação no Clean arch tem a mesma responsabilidade que no MV no MVP.
Como alguém decide escolher um padrão em vez do outro?
Respostas:
O que Bob Martin chamou de " Arquitetura Limpa " é mais uma "meta-arquitetura", uma diretriz de alto nível para a criação de arquiteturas em camadas. Não diz nada como
"Deve haver uma camada Modelo, uma camada Visualização e uma camada Apresentação, e elas devem ser implementadas usando o MVP ",
ele contém apenas regras mais gerais para as camadas como "dependências devem ir dos círculos externos para os círculos internos, e não vice-versa" . E como no MVP, o View (= UI) pode conhecer o Presenter, mas o Presenter é dissociado do View por uma interface, o MVP é apenas uma das muitas soluções possíveis que atendem a essa regra.
Obviamente, é possível usar o MVP dentro de um sistema "Arquitetura Limpa", mas essa não é a única abordagem correta. Qualquer design de interface do usuário em que as "camadas internas" não saibam nada de especial sobre a interface do usuário, e onde a interface do usuário siga também as outras regras de "Arquitetura Limpa" descritas no artigo de Bob Martin, tudo bem.