인터프리터 패턴

인터프리터 패턴이란?⌗
문법 규칙을 클래스화 한 구조로써, 일련의 규칙으로 정의된 언어를 해석하는 패턴
인터프리터 언어의 인터프리터와 같은 의미로 쓰임
구조⌗
Context
인터프리터가 구문해석을 실행하기 위한 정보를 제공. 문맥에 대한 정보를 모두 가지고 있음.AbstactExpression
공통 인터페이스 정의TerminalExpression
해당 표현 이후에 그 이상 전개 되지 않는 표현. 코드상에서 해당 표현 이후에는 더 이상 다른Expression
객체를 호출하지 않음.NonterminalExpression
이미 전개된 표현
장점⌗
- 각 문법 규칙을 클래스로 표현하여 언어를 쉽게 구현 가능
- 언어의 변경이나 확장이 쉬운편
Visitor
패턴을 활용, 기존Expression
구조의 변경 없이 새로운 종류의 해석을 정의할 수 있음
단점⌗
- 문법 규칙의 갯수가 많아지면 시스템의 복잡도가 올라간다.
참고⌗
- Head First Design Patterns
- SLiPP::위키 Interpreter
- Baeldung::Interpreter Design Pattern in Java
- 예제 소스