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 |
Tags
- bucket4j
- AWS
- 모던 자바스크립트
- NestJS
- 프론트엔드 과제
- 유효시간 설정 url
- Dev-Matching
- 딥다이브
- oauth
- 우아한테크코스
- Deep Dive
- api 비동기처리
- concurrency limit
- api 요청 수 제한
- 프리코스
- 음악 url 파일 다운로드
- TypeORM
- 코멘토 #코멘토실무PT #실무PT후기 #실무강의 #리액트강의 #웹프로그래밍 #react #웹개발실무
- compateto
- invalid_grant
- 파일 url
- 타입스크립트
- 검색
- 우아한 테크코스
- this
- 프론트엔드
- 자바스크립트
- 스프링부트
- 프로그래머스
- redis
Archives
- Today
- Total
개발 알다가도 모르겠네요
Observer Pattern 을 알아보자 본문
728x90
변화를 식별 -> 클래스를 캡슐화 -> 추상 or 인터페이스로 아우를 수 있는 개념.
데이터의 변경이 발생하였을 때 상대 클래스 및 객체에 의존하지 않으면서 데이터 변경을 통보하고자 할 때 쓰입니다.
데이터가 변경시 통지되는 클래스에 의존하면 안되며, 새로운 통보대상이 추가돼도 데이터 관리클래스는 수정되면 안됩니다.
옵서버 패턴은 통보 대상 객체의 관리를 Subject 클래스와 Observer 인터페이스로 일반화합니다.
그러면 데이터 변경을 통보하는 클래스(ConcreteSubject)는 통보 대상 클래스/객체ConcreteObserver)에 대한 의존성을 제거할 수 있습니다.
결과적으로 통보 대상 클래스나 대상 객체의 변경에도 ConcreteSubject 클래스를 수정 없이 그대로 사용할 수 있도록 합니다.
Example - 성적 출력 프로그램
-ScoreRecord 클래스: 점수를 저장/관리하는 클래스
-DataSheetView 클래스: 점수를 목록형태로 출력하는 클래스
- 성적을 다른 방식으로 출력하고 싶다면? 성적을 목록으로 출력하지 않고 최소/최대값만을 출력하려면?
- 성적이 입력되면 최대 3개 목록, 5개 목록으로 출력, 동시에 최소/최대값만을 출력하려면?
- 성적의 출력 대상이 변경되는 것을 지원한다면 어떤 변경 작업을?
'디자인패턴' 카테고리의 다른 글
Template Method Pattern 을 알아보자 (0) | 2021.12.15 |
---|---|
Decorator Pattern 을 알아보자 (0) | 2021.12.14 |
Strategy Pattern과 Command Pattern 비교 (0) | 2021.12.11 |
Command Pattern 을 알아보자 (0) | 2021.12.11 |
Strategy Pattern 을 알아보자 (0) | 2021.12.11 |