[Swift] Coordinator Pattern
잡담
이전에도 적용해본 경험이 있는데, 디자인 패턴 의도대로 쓰고 있지 않다는 생각이 들었습니다. 조금 더 확실한 학습이 필요했고, 적용하게 되었습니다.
지금 이 게시글에 하나하나 정리하기엔 시간이 부족하기도 하고, 제가 참고한 블로그보다 잘 정리할 자신이 없어요.. ㅎㅎ
제가 이해한 부분에 대한 학습 정리라고 생각하시면 될 것 같습니다.
확실한 이해와 학습이 필요하시다면, 제 글보단 링크를 참고하시는게 더 좋을 것 같아요!
학습 정리
- Coordinator 패턴의 근본적인 목적은 화면 전환의 흐름을 Controller에서 분리하기 위함입니다.
- Controller는 뷰를 그려주는 것에만 집중할 수 있습니다.
- 화면 전환은 Coordinator에서 관리하고, Controller는 자신의 대리자를 알 수 없습니다. 그렇기 때문에 Coordinator만 바꿔주면 Controller는 재사용이 가능해집니다.
- 모든 화면 전환은 전체 앱을 지시하는 AppCoordinator에서 해주고, 모든 Coordinator에는 하위 Coordinator가 존재합니다.
이전에 적용했던 Coordinator 패턴은 Coordinator 끼리의 계층 구조가 없었고, Controller를 재사용할 수 없었던 것 같습니다.
여기서의 키 포인트는 모든 전환을 AppCoordinator에서 컨트롤하고, 모든 Coordinator에는 하위 Coordinator가 존재한다는 것입니다.
완전히 Controller에서 화면 전환 로직이 분리되고, Controller에서는 어떤 객체가 화면 전환을 담당하는지 알 수 없는 것이죠.
자세한 학습을 원하시면 링크 참고 부탁드립니다.