옵저버 패턴 push vs pull #3
picaqwe104
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
오늘 스터디 안에서는 push 와 pull의 차이를 "시점"에 두고 얘기가 진행이 되었던 것 같은데(물론 그 관점도 중요하지만) 책 내용에서는 데이터에 따라 push와 pull이 나눠진 것 같아서 메모겸 적어둡니다.
즉, 책에서 pull을 사용하는 게 좋다는 것은 "어떤 옵저버가 어떤 데이터가 필요할지 모르니까" 일괄적으로 push하는 것은 비효율적이다, 라는 것.
notify하는 시점 자체는 여전히 주제에서 관리하고 있습니다.
이후 추가적으로 생각하자면, "알림을 주는 건 여전히 주제가 관리하지만, 이후 활동은 옵저버가 관리하게 하면 된다" 인데, 책 내의 예시에서는 update가 notify 안에 있어서 헷갈리기 쉬운 것 같습니다. 물론 그렇게 관리할 수도 있지만 실제로는 배치 처리나 지연 처리 등 처리를 어떻게 하냐에 따라 update 시점을 옵저버가 정할 수 있습니다. 이 부분이 스터디 내에서 토의된 부분이지 않나 싶습니다.
결합도에 대해서도 pull이 더 느슨한 결합이라 할 수 있는데, 이는 인터페이스 수준에서 봤을 때 push는 메서드에 어떤 정보를 건네야 하는지(매개변수)가 정해져 있어서 주제가 옵저버에 대해 알아야 하는 것이 많은 반면, pull인 경우에는 주제가 옵저버에 대해 알 필요가 없으므로 느슨해집니다.
Beta Was this translation helpful? Give feedback.
All reactions