public class Context {
private String input;
private String output;
public String getInput() {
return input;
}
public void setInput(String input) {
this.input = input;
}
public String getOutput() {
return output;
}
public void setOutput(String output) {
this.output = output;
}
}
public abstract class AbstractExpression {
public abstract void Interpret(Context context);
}
public class TerminalExpression extends AbstractExpression {
@Override
public void Interpret(Context context) {
context.setOutput("终端"+context.getInput());
System.out.println(context.getInput() + "经过终端解释器解释为:" + context.getOutput());
}
}
public class NonterminalExpression extends AbstractExpression {
@Override
public void Interpret(Context context) {
context.setOutput("非终端"+context.getInput());
System.out.println(context.getInput() + "经过非终端解释器解释为:" + context.getOutput());
}
}
/**
* 解释器模式(Interpreter)
*/
public class InterpreterMethodActivityActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_interpreter_method_activity);
Context context=new Context();
context.setInput("AAA");
AbstractExpression expression=new TerminalExpression();
expression.Interpret(context);
AbstractExpression expression1=new NonterminalExpression();
expression1.Interpret(context);
}
}
github地址:https://github.com/zyj18410105150/DesignMode