목차
개요
내용
요약
언어가 주어지면 그 언어의 문법에 대한 표현법을 정하고 인터프리터를 사용해 문장을 해석하자.
예시
문자열에서 특정한 패턴을 찾을 땐 어떻게 해야 할까요? 예를 들어, 해당 문자열이 전화번호라는 것을 어떻게 검증할 수 있을까요? 기초적으로 생각해보면 아래처럼 구현할 수 있을 것입니다.
str.isDecimal(0, 2) && str.charAt(3).equals("-") . . .
하지만 어떤 패턴을 찾을 때마다 위처럼 일일히 구현해주면 상당히 귀찮겠죠? 이때문에 등장한 것이 Regulater Expression, 줄여서 regex입니다. Regex는 문자열에서 특정한 패턴을 찾을 때 도움을 주는 DSL입니다. 이처럼 특정한 목적을 위해 언어를 정의하고 해석하는 패턴을 인터프리터 패턴이라고 합니다.
구조
일반적인 상황에선 이 패턴을 직접 구현할 일이 거의 없으므로 아래 내용은 생략합니다.
이야깃거리
언제 써야 할까?
장단점
Case Study
Case 1. JPQL or SQL?
출처
GoF Design Patterns
'Design Patterns' 카테고리의 다른 글
[Design Patterns] Mediator (0) | 2024.05.13 |
---|---|
[Design Patterns] Iterator (0) | 2024.04.21 |
[Design Patterns] Command (0) | 2024.03.31 |
[Design Patterns] Chain of Responsibility (0) | 2024.03.31 |
[Design Patterns] Proxy (0) | 2024.03.31 |