1.정의
-하나의 객체가 여러 객체의 상태변화를 감지하게 하는 패턴.
-특정 개체의 상태가 바뀌었을 때 반영해야 하는 개체가 여러 개 일 때 감시자 역할을 하는
객체를 두어 변화가 생길 때마다 알려주는 역할을 하게 한다.
-감시자 객체가 주 개체에게 등록하는 것을 구독이라 하며 변화가 생길 때마다 알려주는 것을
게시라고 한다.
2.다이어 그램
-IUpdate인터페이스는 감시자 객체들의 기능을 약속하는 인터페이스.
-SaturationViewer,BrightnessViewer,ToneViewer 클래스 감시자 객체들로 인터페이스의 기능을
실질적으로 구현한다.
-Subject는 추상클래스로 감시자가 구독하는 하는 객체의 추상클래스로 감시자 객체들을
구독과 헤제하는 기능을 가지고 감시자 객체의 상태 변경을 통보하는 메서드를 가진다.
-Picture 클래스는 사진과 관련된 속성과 기능을 가지고 Subject의 상속받아 감시자들의
구독을 받는 클래스.
3.구현
1)Subject 추상클래스
2)Picture 클래스
3)IUpdate 인터페이스
4)ToneViewer 클래스
5)SaturationViewer 클래스
6) BrightnessViewer 클래스
7)테스트
'C# > GoF 디자인패턴' 카테고리의 다른 글
[GoF]24.템플릿 메서드 패턴(Template Method Pattern) (0) | 2023.12.30 |
---|---|
[GoF]23.전략 패턴(Strategy Pattern) (0) | 2023.12.19 |
[GoF]20.메멘토 패턴(Memento Pattern) (0) | 2023.12.09 |
[GoF]19. 중재자 패턴(Mediator Pattern) (0) | 2023.12.05 |
[GoF]18. 반복자 패턴(Iterator Pattern) (0) | 2023.12.02 |