解释器模式(Interpreter Pattern),如果一个类型的问题发生的概率很高,那么可以定义一种文法,并定义一个解释器,该解释器通过这些文法句子来解决该问题。
一、需求举例:
C语言由C语言解释器来处理,Java语言由Java解释器处理。
二、类图:
三、代码实例:
1.解释器父类:Expression
package com.lance.interpreter;
public interface Expression {
void interpreter(Context context);
}
2.C语言解释器:CExpression
package com.lance.interpreter;
public class CExpression implements Expression {
@Override
public void interpreter(Context context) {
System.out.println("This is C language");
}
}
3.Java语言解释器:JavaExpression
package com.lance.interpreter;
public class JavaExpression implements Expression {
@Override
public void interpreter(Context context) {
System.out.println("This is Java language");
}
}
4.上下文类:Context
package com.lance.interpreter;
public class Context {
private String context;
public String getContext() {
return context;
}
public void setContext(String context) {
this.context = context;
}
}
5.主类:InterpreterPattern
package com.lance.interpreter;
public class InterpreterPattern {
public static void main(String[] args) {
System.out.println("==========start==========");
Context context = new Context();
context.setContext("C");
Expression cExpression = new CExpression();
cExpression.interpreter(context);
System.out.println("=======================");
context.setContext("Java");
Expression javaExpression = new JavaExpression();
javaExpression.interpreter(context);
System.out.println("==========end==========");
}
}
输出结果:
==========start==========
This is C language
=======================
This is Java language
==========end==========
网友评论