Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 디자인패턴
- Parallel Old GC
- 체인 패턴
- 키클락
- The law of Demeter
- spring batch
- 생산자 소비자 패턴
- Transaction Pattern
- Action Pattern
- 디자인 패턴
- Spring Cloud Netfilx Eureka
- MSA
- 타입스크립트
- Java
- TypeScript
- Spring Boot Actuator
- 스레드
- 스프링 배치
- java 정렬
- 배치
- Resilinece4j
- saga pattern
- 멀티스레드
- Serial GC
- 사가 패턴
- thread
- JPA
- 알고리즘
- spring cloud
- zipkin
Archives
- Today
- Total
PSD( Private-Self-Development )
옵저버 패턴 본문
옵저버 패턴이란?
특정 객체의 상태 변화를 관찰하고 있는 관찰자들을 구현하는 패턴이다.
즉, 옵저버들을 특정 객체에 등록하고, 객체에 변화가 있을 경우
옵저버들에게 메서드를 통해 통지 혹은 이벤트 발생을 시킨다.
옵저버 패턴의 장점
- 실시간으로 객체의 변화를 옵저버들에게 전파 가능
- 느슨한 결합으로 시스템이 유연하고 객체간의 의존성 감소
옵저버 패턴의 단점
- 과도하게 사용하면 상태 관리가 힘들다.
- 데이터 배분에 문제가 생기면 큰 문제가 될 수 있다.
옵저버 패턴의 구현
public class A {
private int status = 0;
private List<Observer> obserberList = new ArrayList<>();
public void addObserver(Observer observer){
obserberList.add(observer);
}
public void removeObserver(Observer observer){
obserberList.remove(observer);
}
public void setStatus(int status){
setStatus(status);
obserberList.stream().forEach(observer::notify);
}
}
public class Observer{
public void notify(){
}
}
참조 :
https://pjh3749.tistory.com/266
https://coding-factory.tistory.com/710
'Backend > 디자인패턴' 카테고리의 다른 글
추상 팩토리 패턴 (0) | 2023.05.09 |
---|---|
팩토리 메서드 패턴 (0) | 2023.03.21 |
싱글톤 패턴(Singleton pattern) (0) | 2023.03.20 |
팩토리 패턴 (1) | 2023.03.15 |
프록시 패턴 (0) | 2023.02.17 |