首先上来就是类图
PullParserTool里面封装了Pull解析的一些过程,除了开始标签和结束标签以外,其他代码都是Pull的常规写法,开始标签和结束标签的处理主要交给实现XMLParserHelper的类来处理。我们看到PullParserTool中“有一个”XMLParserHelper的实例(Head First设计模式中:“有一个”比“是一个”好)。一旦代码执行到了开始标签或结束标签的位置,就执行xmlParseHelper.xmlPullParserStart(parser)或者xmlParseHelper.xmlPullParserEnd(parser)。
接着让XMLParseHelperFather这个类实现接口xmlParseHelper,父类什么也不做,定义一些子类的公共参数,考虑到子类以后会有公共的方法,所以才XMLParseHelperFather作为一个父类存在。
XMLParseHelperFather的子类实现具体的解析操作,以XMLParseHelperForBooks为例,XMLParseHelperForBooks的解析格式如下,