Design Pattern:
Interpreter pattern provides a way to evaluate language grammar or expression. 模式:解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式
故事场景: //教练准备使用普林斯顿打发 但是NBA球队有中国人,又有法国人的 只能靠google翻译交流了
战术抽象
public interface Tactics {
//使用的战术
void play(String tactics);
}
google解释器 中国翻译,法国翻译
//ConcreteTactics 像是一个google翻译机器
public class ConcreteTactics implements Tactics {
@Override
public void play(String tactics) {
System.out.println(tactics);
}
}
// 中国战术 :把教练说的话变成中文 需要带上google翻译,然后将教练说的话输进去,google翻译输出中文
public class ChineseTactics implements Tactics{
Tactics tactics;
public ChineseTactics(Tactics tactics) {
this.tactics = tactics;
}
@Override
public void play(String tacticsStr) {
tactics.play("我们使用"+tacticsStr+"战术!!!");
}
}
// 法国战术 :把教练说的话变成法语 需要带上google翻译,然后将教练说的话输进去,google翻译输出法语
public class FranceTactics implements Tactics{
Tactics tactics;
public FranceTactics(Tactics tactics) {
this.tactics = tactics;
}
@Override
public void play(String tacticsStr) {
tactics.play("On utilise des tactiques de "+tacticsStr +"!!!");
}
}
实验的开始
public class InterpreterDemo {
public static void main(String[] args) {
//这像是个google翻译
ConcreteTactics aTactics = new ConcreteTactics();
//法国人带一个
FranceTactics fTactics = new FranceTactics(aTactics);
//中国人也带一个
ChineseTactics cTactics = new ChineseTactics(aTactics);
String tactics = "Princeton";
System.out.print("英译法解释器-->");
fTactics.play(tactics);
System.out.print("英译中解释器-->");
cTactics.play(tactics);
}
}
结果
