PSD( Private-Self-Development )

옵저버 패턴 본문

Backend/디자인패턴

옵저버 패턴

chjysm 2023. 2. 17. 15:54

옵저버 패턴이란?

특정 객체의 상태 변화를 관찰하고 있는 관찰자들을 구현하는 패턴이다.

즉, 옵저버들을 특정 객체에 등록하고, 객체에 변화가 있을 경우
옵저버들에게 메서드를 통해 통지 혹은 이벤트 발생을 시킨다.

 

옵저버 패턴의 장점

  • 실시간으로 객체의 변화를 옵저버들에게 전파 가능
  • 느슨한 결합으로 시스템이 유연하고 객체간의 의존성 감소

옵저버 패턴의 단점

  • 과도하게 사용하면 상태 관리가 힘들다.
  • 데이터 배분에 문제가 생기면 큰 문제가 될 수 있다.

 

옵저버 패턴의 구현

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

 

[디자인패턴] 옵저버 패턴 (Observer Pattern) 아주 간단하게 정리해보기

옵저버 패턴이란? 옵저버란 스타크래프트 프로토스의 유닛으로 적들을 관찰하기 위해 탄생한 유닛이다. 테란전에서 필수 유닛이며 옵저버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관

pjh3749.tistory.com

https://coding-factory.tistory.com/710

 

[Design Pattern] 옵저버 패턴(Observer Pattern)에 대하여

옵저버 패턴(Observer Pattern)이란? 옵저버패턴이란 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의

coding-factory.tistory.com

 

'Backend > 디자인패턴' 카테고리의 다른 글

추상 팩토리 패턴  (0) 2023.05.09
팩토리 메서드 패턴  (0) 2023.03.21
싱글톤 패턴(Singleton pattern)  (0) 2023.03.20
팩토리 패턴  (1) 2023.03.15
프록시 패턴  (0) 2023.02.17