edm2.setAmount(55);
// 把数据组装起来
col.add(edm1);
col.add(edm2);
mapData.put("销售记录表", col);
ExportFooterModel efm = new ExportFooterModel();
efm.setExportUser("张三");
// 测试输出到文本文件
ExportToTxt toTxt = new ExportToTxt();
toTxt.export(ehm, mapData, efm);
// 测试输出到xml文件
ExportToXml toXml = new ExportToXml();
toXml.export(ehm, mapData, efm);
}
}3.问题所在
仔细观察上面的实现,会发现,无论输出文本文件还是XML文件,在实现的时候,步骤基本上都是一样的,大致分为四步:
1. 拼接头文件的内容
2. 拼接文件体的内容
3. 拼接文件尾的内容
4. 把拼接好的内容输出到文件
这说明什么呢?说明对于不同的输出格式,处理步骤基本上是一致的。但是每步的具体实现是不一样的。
那么我们应该提炼出公共的处理过程,并且要能方便的快速切换不同的输出格式。
4.解决方案
4.1生成器模式的定义:(又叫建造者模式)
将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。
4.2生成器模式的结构图