读书人

ibatis源码分析(4)dom bean解析

发布时间: 2012-10-06 17:34:01 作者: rapoo

ibatis源码分析(四)dom bean解析
ibatis的bean解析涉及到的类见如下UML;主要是在包com.ibatis.common.beans下;

其中DomProbe是负责dom解析。ComplexBeanProbe负责javabean的反射。GenericProbe类主要是用前面两个类实现baseProbe同样的方法。用到了设计模式职责链模式(chain of responsibility):看如下代码:

private static final BaseProbe BEAN_PROBE = new ComplexBeanProbe();

private static final BaseProbe DOM_PROBE = new DomProbe();

public void setObject(Object object, String name, Object value) {

if (object instanceof org.w3c.dom.Document) {

DOM_PROBE.setObject(object, name, value);

} else {

BEAN_PROBE.setObject(object, name, value);

}

}

当客户端要得到probe时,由ProbeFactory创建,运用工厂模式。

public class ProbeFactory {



private static final Probe DOM = new DomProbe();

private static final Probe BEAN = new ComplexBeanProbe();

private static final Probe GENERIC = new GenericProbe();



//返回通用类型的probe

public static Probe getProbe() {

return GENERIC;

}



//判断是返回哪种类型的probe

public static Probe getProbe(Object object) {

if (object instanceof org.w3c.dom.Document) {

return DOM;

} else {

return BEAN;

}

}

}

dom和bean解析就介绍到这里。

读书人网 >软件架构设计

热点推荐