인터프리터 패턴
- 행동 관련 디자인 패턴.
- 자주 등장하는 문제를 간단한 언어로 정의하고 재사용하는 패턴.
- 반복되는 문제 패턴을 언어 또는 문법으로 정의하고 확장할 수 있다.
- 정규 표현식이 이 패턴으로 구현되었다.
Context는 모든 Expression에서 사용하는 공통된 정보가 들어가 있다.
글로벌한 값들이 모여있는 곳이다.
Expression에서 이 값들을 참조한다.
TerminalExpression은 그 자체로 종료되는 Expression.
NonTerminalExpression같은 경우 다른 Expression을 참조하고 있는 Expression이다.
종료가 되지 않고 다른 Expression들을 Interpret 해봐야 그 결과를 알 수 있다.
NonTerminalExpression은 또 다른 NonTerminalExpression을 참조할 수도 있고 아니면 TerminalExpression을 참조할 수도 있다.
인터프리터 패턴의 장점
1. 자주 등장하는 문제 패턴을 언어와 문법으로 정의할 수 있다.
2. 기존 코드를 변경하지 않고 새로운 익스프레션을 추가할 수 있다.
인터프리터 패턴의 단점
복잡한 문법을 표현하려면 Expression과 Parser가 복잡해진다.
그러므로 문법으로 구현하는데 필요한 비용과 얼마나 자주 사용하게 될 것 같은지 비교하여 판단해야 한다.
'프로그래밍 강의 메모 > 코딩으로 학습하는 GoF의 디자인 패턴_백기선' 카테고리의 다른 글
행동 관련 디자인 패턴 > 중재자 패턴(Mediator Pattern) (0) | 2022.05.26 |
---|---|
행동 관련 디자인 패턴 > 이터레이터 패턴(Iterator Pattern) (0) | 2022.05.26 |
행동 관련 디자인 패턴 > 커맨드 패턴(Command Pattern) (0) | 2022.05.26 |
행동 관련 디자인 패턴 > 책임 연쇄 패턴(Chain of Responsibility Pattern) (0) | 2022.05.26 |
구조 관련 디자인 패턴 > 프록시 패턴(Proxy Pattern) (0) | 2022.05.26 |