일반적인 VIPER 패턴
VIPER 패턴은 MV(X)의 패턴을 대체하기 위해 만들어진 패턴입니다.
역할 및 동작 원리
- View
- 사용자에게 보여지는 View를 생각하시면 됩니다
- 유저 인터랙션을 받는 역할을 담당합니다
- 이벤트가 발생할 시 Presenter에게 해당 일을 전달합니다
- Presenter의 요청대로 디스플레이하고 사용자의 입력을 Presenter에게 보냅니다
- Presenter
- Entity로부터 받은 업데이트 이벤트를 실행하지만 데이터를 직접적으로 보내지는 않습니다
- View 모델의 변경사항을 Interactor에게 알립니다
- Interactor로부터 데이터를 가져오고 View로 보내기 위해 데이터를 준비하여 View로 데이터를 디스플레이할 시기를 결정합니다
- Interactor
- Presenter로부터 받은 모델 변경사항에 따라 Entity에 접속하여 Entity로부터 수신한 데이터를 Presenter에게 전달합니다
- Use Case에 따라서 Entity 모델 객체를 조작하는 로직을 담고있습니다
- Entity
- 순수 모델 객체
- Routing
- Wireframe이라고 불리기도 하며, UIWindow와 UINavigationController에서 화면 간의 탐색을 위한 라우팅을 담당합니다
- Presenter가 언제 화면을 전환하는지를 담당한다면 Router는 어떻게 하는지를 담당합니다
VIPER 패턴의 장단점
- 장점
- 각 도메인의 역할이 명확하게 구분됩니다
- 모듈을 작게 만들고 역할을 분명히 하기에 대규모 프로젝트에 적합합니다
- 단점
- 설계가 여러 곳으로 난립합니다
- 명확한 가이드나 유지보수 되는 곳이 없습니다
- 많은 파일들이 생성됩니다
'디자인 패턴' 카테고리의 다른 글
Clean Swift(VIP) 패턴 (0) | 2021.04.13 |
---|---|
MVVM 패턴 (0) | 2021.04.13 |
MVP 패턴 (0) | 2021.04.12 |
MVC 패턴 (0) | 2021.04.12 |