인터프리터 패턴

ITKHJ·2023년 3월 2일
0

GoF의 디자인 패턴

목록 보기
8/16
post-thumbnail

인터프리터 패턴

  • 자주 등장하는 문제를 간단한 언어로 정의하고 재사용하는 패턴
  • 반복되는 문제 패턴을 언어 또는 문법으로 정의하고 확장할 수 있다.
  • 요청을 캡슐화 하여 호출자(invoker)와 수신자(receiver)를 분리하는 패턴.

사용 예시

App

  • 일종의 parser가 있다고 가정을 하고 parser로 파싱을 하면 PostfixExpression이 나옴

PostfixExpression

  • Character를 키로, 값은 Integer인 context가 있다고 가정을 함

VariableExpression

  • 터미널 Expression 정의

PlusExpression

  • left를 interpret하고 그 결과를 right를 interpret한 결과에 더해서 리턴하면 됨

MinusExpression

  • left를 interpret하고 그 결과를 right를 interpret한 결과에 빼서 리턴하면 됨

PostfixParser

장점

  • 자주 등장하는 문제 패턴을 언어와 문법으로 정의할 수 있다.
  • 기존 코드를 변경하지 않고 새로운 Expression을 추가할 수 있다.(OCP)

단점

  • 복잡한 문법을 표현하려면 Expression과 Parser가 복잡해진다.
profile
모든 업무 지식 작성하자!

0개의 댓글