두가지 책으로 간단하게 정리했다.
- 디자인패턴입문 핵심내용
-
observer 패턴은 subject(피 관찰자)와 observer(관찰자)로 나뉜다
-
observer는 실제로 관찰자라는 의미지만 실제로 observer 패턴에서는 능동적인 관찰이라기 보다는 subject 로부터 상태가 바뀜?을 전달되는것을 기다립니다. 즉 Publish-Subscribe 패턴이라하는게 더 적당함.
- 헤드퍼스트 핵심내용
-
subject:obsever가 다대다가 될수 있음.
-
예를들면 subject에 서울기상청, 부산기상청, 대전기상청은 한국기상청꺼를 사용하여 implement함,, 근데 나는 현재 서울기상청한테 publishing을 받아서 서울기상어플을만들었는데, 이제 부산기상어플로 바꾸려할때
-
-
subject가 observer에게 전달할때 본 객체자체를 넘기도록 하는게 좋다(푸시방식이 아닌 풀방식)
- 옵저버들은 각자가 필요한 데이터들이 다를수있다. subject가 그 모두 다른 옵저버의 입맛을 챙겨주기엔 무리다.
- 만약 subject가 확장되면서 정보들이 늘었다고치자, 그럼 퍼블릭 게터하나만 뚫어주면된다. 안그러면 메소드를 수정하는일이 생길거다.
출처: https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9D%EC%8B%9C_%ED%8C%A8%ED%84%B4#/media/%ED%8C%8C%EC%9D%BC:Proxy_pattern_diagram.svg