解釋器模式git
public interface IExpression { void interpreter(); }
public class TerminalExpression implements IExpression { @Override public void interpreter() { System.out.println("TerminalExpression interpreter ..."); } }
public class NonterminalExpression implements IExpression { private TerminalExpression terminalExpressionA, terminalExpressionB; public NonterminalExpression(TerminalExpression terminalExpressionA, TerminalExpression terminalExpressionB){ this.terminalExpressionA = terminalExpressionA; this.terminalExpressionB = terminalExpressionB; } @Override public void interpreter() { terminalExpressionA.interpreter(); terminalExpressionB.interpreter(); System.out.println("interpreter terminalExpressionA AND terminalExpressionB ..."); } }
public static void main(String[] args) { TerminalExpression expressionA = new TerminalExpression(); TerminalExpression expressionB = new TerminalExpression(); IExpression expression = new NonterminalExpression(expressionA, expressionB); expression.interpreter(); }
TerminalExpression interpreter ... TerminalExpression interpreter ... interpreter terminalExpressionA AND terminalExpressionB ...
https://github.com/Seasons20/DisignPattern.git
ENDgithub