Tags
- with jdk
- 디자인패턴
- kotlin
- openapispec
- 라즈베리파이
- Spring Cloud
- restcontroller
- 리믹스아이콘
- OneToMany
- 라즈베리파이 클러스터
- 폰트어썸
- oraclejdk
- springboot
- fontawesome
- Observer Pattern
- java_to_kotlin
- remix icon
- Openjdk
- Docker
- EntityGraph
- 도커
- 전략패턴
- QueryDSL
- restdocs
- spring cloud contract
- arc browser
- 무료 아이콘 폰트
- java
- Spring
- 옵저버패턴
Archives
- Today
- Total
< Dev-Kidult />
디자인 패턴 - 옵저버패턴(Observer pattern) with pull 본문
지금까지의 글에서는 push방식의 옵저버패턴을 구현하였습니다.
이번 글에서는 push방식이 아닌 pull방식의 옵저버패턴을 알아보겠습니다.
지금까지는 observable객체가 일방적으로 데이터가 변경되면 noti를 보내 observer객체들의 메소드가 실행되었다면,
pull방식의 옵저버패턴은 observer객체들이 자신이 원하는 때에만 observable객체로부터 정보를 받아 실행을 하게 됩니다.
public interface Observable {
void addObserver(Observer o);
void deleteObserver(Observer o);
void notifyObserver(Observer o);
}
@Override
public void notifyObserver(Observer o) {
o.update(this);
}
기존과 다르게 하나의 observer에만 노티를 보낼 수 있도록 코드를 변경하였으며
public class WeatherApp implements Observer {
private Observable observable;
WeatherApp(Observable observable) {
this.observable = observable;
observable.addObserver(this);
}
@Override
public void update(Observable o) {
notifyMessage((WeatherData) o);
}
void updateStatus() {
observable.notifyObserver(this);
}
}
observer에서도 updateStatus함수를 통해 자신이 필요할 경우에만 노티를 받을 수 있도록 구현하였습니다.
반응형
'개발 > Etc' 카테고리의 다른 글
[장난감프로젝트] - 1. 개인서버를 구성해볼까? (0) | 2022.08.08 |
---|---|
aws cli를 사용해보자 (0) | 2021.03.23 |
디자인 패턴 - 옵저버패턴(Observer pattern) with custom (0) | 2019.07.22 |
About docker(도커) #2 설치부터 실행까지 for MacOS (0) | 2018.09.11 |
About docker(도커) #1 docker란? (0) | 2018.08.01 |
Comments