1700481651
}
1700481652
1700481653
}
1700481654
1700481655
为什么要用枚举类型?用一个接口来管理也是很容易实现的。注意CommandEnum中的构造函数CommandEnum(String value)和getValue类,没有新建一个Enum对象,但是可以直接使用CommandEnum.ls.getValue方法获得值,这就是Enum类型的独特地方。再看下面:
1700481656
1700481657
ls(“com.cbf4life.common.command.LSCommand”);
1700481658
1700481659
是不是很特别?是的,枚举的基本功能就是定义默认可选值,但是Java中的枚举功能又增强了很多,可以添加方法和属性,基本上就是一个特殊的类。若要详细了解Enum,读者可以翻阅一下相关语法书。
1700481660
1700481661
现在剩下的工作就是写一个Client类,然后看看运行情况如何,如代码清单34-13所示。
1700481662
1700481663
代码清单34-13 场景类
1700481664
1700481665
public class Client{
1700481666
1700481667
public static void main(String[]args)throws IOException{
1700481668
1700481669
Invoker invoker=new Invoker();
1700481670
1700481671
while(true){
1700481672
1700481673
//UNIX下的默认提示符号
1700481674
1700481675
System.out.print(”#”);
1700481676
1700481677
//捕获输出
1700481678
1700481679
String input=(new BufferedReader(new InputStreamReader
1700481680
1700481681
(System.in))).readLine();
1700481682
1700481683
//输入quit或exit则退出
1700481684
1700481685
if(input.equals(“quit”)||input.equals(“exit”)){
1700481686
1700481687
return;
1700481688
1700481689
}
1700481690
1700481691
System.out.println(invoker.exec(input));
1700481692
1700481693
}
1700481694
1700481695
}
1700481696
1700481697
}
1700481698
1700481699
Client也很简单,通过一个while循环允许使用者持续输入,然后打印出返回值,运行结果如下:
1700481700
[
上一页 ]
[ :1.700481651e+09 ]
[
下一页 ]