본문 바로가기

Design Pattern

MVP(Model View Presenter) 패턴



Model : 비지니스 로직

View : UI로직 

 -> 액티비티/프래그먼트가 이제 뷰의 일부로 간주된다는 것입니다. 따라서 이들이 서로에게 연관되는 자연스러운 현상을 극복할 필요가 없습니다. 액티비티가 뷰 인터페이스를 구현해서 프리젠터가 코드를 만들 인터페이스를 갖도록 하는 것이 좋습니다. 이렇게 하면 특정 뷰와 결합되지 않고 가상 뷰를 구현해서 간단한 유닛 테스트를 실행할 수 있죠.

Presenter 

: 뷰에 연결되는 것이 아니라 그냥 인터페이스라는 점이 다릅니다. 뷰에게 무언가를 표시하는 방법을 지시하는 대신, 표시할 내용만 전달합니다.

장점

1. 적절한 역할의 분리로 인해 소스 가독성 + 품질 상승

2. 테스트 코드 작성이 용이하다.

단점 

컨트롤러처럼 프리젠터에도 시간이 지남에 따라 추가 비즈니스 로직이 모이는 경향이 있습니다. 시간이 흐른 후 개발자는 거대하고 다루기 어려운데다 문제가 발생하기 쉽고 분리하기도 어려운 프리젠터를 발견하게 돼죠.