C#/GoF 디자인패턴

[GoF]17.해석자 패턴(Interpreter Pattern)

공부를하자 2023. 11. 28. 01:53

1.정의

 해석자 패턴은 사용자가 표현하기 쉬운 표현을 사용하게 하고 이를 해석하는 개체를 통해 약속된 알고리즘을 수행하는 패턴.

하지만 해석자 패턴은 사용자의 편의성을 도모해야하고 너무 많은 명령어 조합은 많은 비용을 초래할 있다.

2.다이어그램

-Picture 클래스 사진의 정보(변수) 가지고 매개변수를 받아 변수를 변화시키고 정보를 보는 메서드를 가지고 있다.

- Expression 추상클래스는 입력 값을 받아 해석하고 사진을 수정하는 기능을 약속한다.

-ToneExpression,BrightnessExpression,SaturationExpression 입력값을 받아 해석하는 기능과 사진을 정보를 수정시키는 매서드를 재정의 한다.

-macro 클래스는 Expression 파생클래스을 연결리스트로 만들어 가지고 있는 객체로 리스틀 추가하고

입력값을 받았을 적용하는 기능을 포함한다.

3.구현

1)Picture 클래스

2)Expression 추상클래스와 파생 클래스

 

-나머지 클래스들은 입력 값을 대비하고 사진에 적용하는 메서드만 다르고 형태가 완전히 같음.

3)Macro 클래스

4)테스트