C#/GoF 디자인패턴

[GoF]9.장식자 패턴(Decorator Pattern)

공부를하자 2023. 10. 17. 03:18

1.정의

  -기존 클래스에 기능을 추가할 유용한 패턴으로 특정 기능을 하는 단위 형식 개체로 정의하여 기능을

   추가/삭제를 용이하게 하는 패턴.

 - 기능을 수행하는 기반 클래스를 작성하고 기능을 수행하는 메서드를 약속한다..

2.시나리오

-가족은 야구장에 놀러갔다.

-아들은 야구장에 수많은 선수의 사진을 찍었다.

 -그러나  카메라의 설정이 잘못 됐는지 사진의 상태가 좋지 않았다.

-아버지는 그런 아들을 위해 사진 자료들을 보정,채도 보정.명도 보정(단위 기능) 하여

 사진을 편집했다.

 3.다이어그램

-수정하는 기능을 약속한 IChange 인터페이스를 약속한다.

-Ichange 인터페이스에 따라 파생클래스(ToneCompensator, BrightnessCompensator, SaturationCompensator) 실질적 기능을 구현한다.

-MultiCompensator 클래스는 단위기능 객체들의 리스트를 가지고 일관적으로 기능들이 적용되도록 한다.

-Picture 해당 클래스의 결과를 나타내다.

4.구현

1)Picture 클래스

2)IChange 인터페이스

3)단위기능 객체들의 클래스

 

 

4)MultiCompensator 클래스

5)테스트