Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Observer 패턴 적용하여 커피 주문하기 #45

Open
SkynI25 opened this issue Aug 30, 2020 · 0 comments
Open

Observer 패턴 적용하여 커피 주문하기 #45

SkynI25 opened this issue Aug 30, 2020 · 0 comments
Assignees
Labels
Web Web 기본작업 기본적으로 해야하는 작업

Comments

@SkynI25
Copy link
Contributor

SkynI25 commented Aug 30, 2020

Observer 패턴

명칭

다음과 같이 불린다.

  • 옵저버 패턴(observer pattern)
  • 종속자 패턴(dependent pattern)
  • 게시-구독 패턴(publish-subscribe pattern) - HEAD FIRST에선 이와 같다고 소개하지만 실제론 서로 차이가 있다
    링크

Observer 패턴의 의도

객체 사이에 일 대 다의 의존 관계를 정의해 두어, 어떤 객체의 상태가 변할 때 그 객체에 의존성을 가진 다른 객체들이 그 변화를 통지받고 자동으로 갱신될 수 있게 만듭니다.

Observer 패턴에 대한 예시

  • Ex) 새로운 파일이 추가되거나 기존 파일이 삭제되었을 때 탐색기는 다른 탐색기에게 즉시 변경을 통보해야 한다.
  • Ex) 차량 연료량 클래스는 연료량이 부족한 경우 연료량에 관심을 가지는 구체적인 클래스(연료량 부족 경고 클래스, 주행 가능 거리 출력 클래스)에 직접 의존하지 않는 방식으로 연료량 변화를 통보해야 한다.

소감

평소 객체지향적으로 컴포넌트를 생성하여 프로그래밍을 했는데 결론적으로 그 패턴이 Observer 패턴이라는 것을 알 수 있었습니다. UI로 상태경과를 표현할때 비동기적인 부분을 고려해야했고 컴포넌트의 현재상태 및 이전상태를 비교하여 상태에 따른 텍스트를 보여주었습니다.

출처

https://flowarc.tistory.com/entry/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4-%EC%98%B5%EC%A0%80%EB%B2%84-%ED%8C%A8%ED%84%B4Observer-Pattern
https://gmlwjd9405.github.io/2018/07/08/observer-pattern.html
https://johngrib.github.io/wiki/observer-pattern/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Web Web 기본작업 기본적으로 해야하는 작업
Projects
None yet
Development

No branches or pull requests

1 participant