首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

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

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解析就介绍到这里。

热点排行