디자인 패턴/행위 패턴

Interpreter 패턴

언린이 2021. 11. 2. 09:20

Interpreter 패턴은 문법 규칙을 클래스화한 구조로, 일련의 규칙으로 정의된 문법적 언어를 해석하는 패턴입니다.

Interpreter 패턴은 SQL과 같은 계층적 언어를 해석하기 위해 계층 구조를 표현할 수 있습니다.

 

 

구조

  • AbstractExpression
    • 문장을 해석하기 위한 해석자 인터페이스 클래스입니다.
  • TerminalExpression
    • 문장의 종료를 나타내는 해석자 클래스 구현체입니다.
  • NonTerminalExpression
    • 문장의 비종료를 나타내는 해석자 클래스 구현체입니다.
  • Context
    • 문장을 저장하고 관리하는 클래스입니다.
  • Client
    • 실제로 Interpret 메서드를 호출하는 사용자 클래스입니다.

 

 

활용 상황

  • 간단한 언어를 구현할때 유용합니다.
  • 문법이 간단하며, 효율보다는 단순하게 만드는 것이 더 중요할때 유용합니다.

 

 

Interpreter 패턴의 장단점

  • 장점
    • 스크립트 언어 및 프로그래밍 언어에서 모두 사용할 수 있습니다.
    • 문법의 추가 및 수정, 구현이 쉬워집니다.
  • 단점
    • 문법 규칙의 개수가 많아지면 굉장히 복잡해집니다.
    • 복잡한 문법의 경우 관리 및 유지가 어려워집니다.