디자인 패턴/행위 패턴
Interpreter 패턴
언린이
2021. 11. 2. 09:20
Interpreter 패턴은 문법 규칙을 클래스화한 구조로, 일련의 규칙으로 정의된 문법적 언어를 해석하는 패턴입니다.
Interpreter 패턴은 SQL과 같은 계층적 언어를 해석하기 위해 계층 구조를 표현할 수 있습니다.
구조
- AbstractExpression
- 문장을 해석하기 위한 해석자 인터페이스 클래스입니다.
- TerminalExpression
- 문장의 종료를 나타내는 해석자 클래스 구현체입니다.
- NonTerminalExpression
- 문장의 비종료를 나타내는 해석자 클래스 구현체입니다.
- Context
- 문장을 저장하고 관리하는 클래스입니다.
- Client
- 실제로 Interpret 메서드를 호출하는 사용자 클래스입니다.
활용 상황
- 간단한 언어를 구현할때 유용합니다.
- 문법이 간단하며, 효율보다는 단순하게 만드는 것이 더 중요할때 유용합니다.
Interpreter 패턴의 장단점
- 장점
- 스크립트 언어 및 프로그래밍 언어에서 모두 사용할 수 있습니다.
- 문법의 추가 및 수정, 구현이 쉬워집니다.
- 단점
- 문법 규칙의 개수가 많아지면 굉장히 복잡해집니다.
- 복잡한 문법의 경우 관리 및 유지가 어려워집니다.