Design Patterns

[Design Patterns] Interpreter

우라릭 2024. 4. 21. 19:10

 

 

목차

    개요

    내용

    요약

    언어가 주어지면 그 언어의 문법에 대한 표현법을 정하고 인터프리터를 사용해 문장을 해석하자.

    예시

    문자열에서 특정한 패턴을 찾을 땐 어떻게 해야 할까요? 예를 들어, 해당 문자열이 전화번호라는 것을 어떻게 검증할 수 있을까요? 기초적으로 생각해보면 아래처럼 구현할 수 있을 것입니다.

    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