JAVA/DesignPattern

Design Pattern 디자인 패턴 Interpreter Pattern 인터프리터 패턴

호두밥 2021. 12. 24. 20:46

Interpreter Pattern 인터프리터 패턴

행동패턴으로, 특정한 표현이나 언어로 바꿔주는 표현 인터페이스를 사용하는 패턴입니다. 보통 SQL을 파싱하거나, 기호를 처리하기 위해 사용합니다.

트리구조로 인해 컴포지트 패턴과 유사한 형태를 띱니다. 트리는 평가할 표현식을 포함하고, 보통 파서(Parser)에 의해 생성됩니다. 파서(Parser) 자체는 인터프리터 패턴의 일부가 아닙니다. 

Interpreter Pattern 인터프리터 패턴

Expression

public interface Expression {
    boolean interprete(String context);
}

MinusExpression

public class MinusExpression implements Expression {
    String data = "-";

    @Override
    public boolean interprete(String context) {
        if(context.contains(data)){
            return true;
        }
        return false;
    }
}

PlusExpression

public class PlusExpression implements Expression {
    String plus = "+";

    @Override
    public boolean interprete(String context) {
        if(context.contains(plus)){
            return true;
        }
        return false;
    }
}

Main

public class Main {
    public static void main(String[] args) {
        Expression plus = new PlusExpression();
        Expression minus = new MinusExpression();

        System.out.println("plus.interprete(\"1+3\") = " + plus.interprete("1+3"));
        System.out.println("minus.interprete(\"1+3\") = " + minus.interprete("1+3"));
    }
}

 

참조