프로그래밍 기술/Escort GoF의 디자인 패턴 C#

[소프트웨어 설계 패턴 C#] 17. 해석자 패턴 (Iterpreter Pattern)

언제나휴일 2016. 4. 17. 13:22
반응형

17. 해석자 패턴(Interpreter Pattern)

 

 해석자 패턴은 사용자가 표현하기 쉬운 표현을 사용하게 하고 이를 해석하는 개체를 통해 약속된 알고리즘을 수행할 수 있게 해 주는 패턴입니다. SQL 쿼리문이나 Command 창에서 프로그램 실행 시 필요한 인자를 전달할 때와 같은 경우 등에서 많이 사용될 수 있는 패턴입니다.

 

 해석자 패턴에서는 사용자가 원하는 다양한 명령을 쉽게 표현할 수 있게 구문 약속을 해야 합니다. 그리고, 해석자에서는 이와 같이 약속된 구문을 입력 인자로 전달되었을 때 이를 해석을 할 수 있어야 합니다. 사용자로부터 전달된 입력 구문은 하나의 표현으로 종결되기도 하지만 여러 개의 표현으로 해석될 수도 있습니다.

가령 "2 Add 3" 과 같은 표현은 피 연산자:2, 연산자:+, 피 연산자:3 으로 해석될 수 있다는 것입니다.

 

 해석자 패턴을 사용하면 사용자가 다양한 명령을 쉬운 표현 방법으로 전달할 수 있습니다. 하지만, 너무 많은 명령에 대한 조합에 대해 해석자 패턴을 적용하려고 한다면 정규화 과정에 들어가는 비용이 기하급수적으로 커질 수 있습니다. 비교적 사용자가 표현식의 문법을 단순화할 수 있는 경우에는 효과적일 수 있지만 그렇지 않다면 다른 방법을 사용하는 것이 나을 수 있습니다.

 


Interpreter.zip



2016/04/28 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 해석자 패턴(Interpreter Pattern) - 개요, 시나리오


2016/04/28 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 해석자 패턴(Interpreter Pattern) - 설계(Design)


2016/04/28 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 해석자 패턴(Interpreter Pattern) - 구현


반응형