1700484720
return false;
1700484721
1700484722
}
1700484723
1700484724
}
1700484725
1700484726
由于读写XML文件一般使用DOM4J或者JDOM,都提供对XML文件的语法校验功能,不符合XML语法(比如一个节点少写了结束标志</node)的文件是不能解析的,读者可以在自己编写框架时使用该类型工具。
1700484727
1700484728
框架的逻辑算法如代码清单38-6所示。
1700484729
1700484730
代码清单38-6 框架逻辑校验
1700484731
1700484732
public class LogicXmlValidate implements IXmlValidate{
1700484733
1700484734
//检查xmlPath是否符合逻辑,比如不会出现一个类中没有的方法
1700484735
1700484736
public boolean validate(String xmlPath){
1700484737
1700484738
return false;
1700484739
1700484740
}
1700484741
1700484742
}
1700484743
1700484744
逻辑校验相对比较复杂,它的逻辑流程如下:
1700484745
1700484746
❑读取XML文件。
1700484747
1700484748
❑使用反射技术初始化一个对象(配置文件中的class属性值)。
1700484749
1700484750
❑检查是否存在配置文件中配置的方法。
1700484751
1700484752
❑检查方法的返回值是否是String,并且无输入参数,同时必须继承指定类或接口。
1700484753
1700484754
逻辑校验需要把所有的对象都初始化一遍,在Action类较多的情况下,效率较低,但它可以提前发现出现访问异常的情况,把问题解决在萌芽状态。我们继续来看两个策略的场景类,如代码清单38-7所示。
1700484755
1700484756
代码清单38-7 策略的场景类
1700484757
1700484758
public class Checker{
1700484759
1700484760
//使用哪一个策略
1700484761
1700484762
private IXmlValidate validate;
1700484763
1700484764
//xml配置文件的路径
1700484765
1700484766
String xmlPath;
1700484767
1700484768
//构造函数传递
1700484769
[
上一页 ]
[ :1.70048472e+09 ]
[
下一页 ]