4. 옵저버 패턴 (Observer)
상태가 변할 때 구독자들에게 자동으로 알려주는 옵저버 패턴을 알아봅니다.
유튜버가 새로운 영상을 올리면, 알림 설정을 해둔 구독자들에게 일제히 알람이 가죠? 이렇게 상태가 변했을 때 관찰자(구독자)들에게 자동으로 알려주는 패턴이 바로 옵저버 패턴이에요.
(참고) 알림을 받을 수 있는 모든 객체가 가져야 할 규약이에요
[구독자]를 규정하자:
<알림받기>가 있어야 한다 ([문자열]인 '메시지')
[구독자]를 따르는 [팬]을 설계하자:
'이름'을 [문자열]로 준비하자
처음 만들어질 때 ([문자열]인 '이름') 다음과 같이 하자:
'나'의 '이름'을 '이름'으로 정하자
<알림받기>를 만들자 ([문자열]인 '메시지'):
틀"{'나'의 '이름'}님이 알림을 받았습니다: {'메시지'}"를 출력하자
(참고) 구독자들을 관리하고, 새 소식이 생기면 모두에게 알려주는 클래스예요
[유튜버]를 설계하자:
'_구독자목록'을 [목록]인 []로 정하여 숨기자
<구독하기>를 만들자 ([구독자]인 '새구독자'):
'나'의 '_구독자목록' 뒤에 '새구독자'를 추가하자
"새로운 구독자가 추가되었습니다!"를 출력하자
<영상올리기>를 만들자 ([문자열]인 '영상제목'):
틀"유튜버: '{'영상제목'}' 영상을 업로드했습니다!"를 출력하자
(참고) 목록에 있는 모든 구독자에게 알림을 돌려요
'나'의 '_구독자목록'의 '구독자'마다 반복하자:
'구독자'의 <알림받기>(틀"'{'영상제목'}'이 올라왔어요!")를 실행하자
(참고) 구독자 두 명을 만들고, 유튜버에게 구독시켜 볼까요?
'크리에이터'를 [유튜버]인 새로운 [유튜버]()로 정하자
'철수'를 [구독자]인 새로운 [팬]("철수")으로 정하자
'영희'를 [구독자]인 새로운 [팬]("영희")으로 정하자
'크리에이터'의 <구독하기>('철수')를 실행하자
'크리에이터'의 <구독하기>('영희')를 실행하자
(참고) 영상을 올리면 구독자 모두에게 자동으로 알림이 가요!
'크리에이터'의 <영상올리기>("하리 언어 기초 강좌")를 실행하자