设计模式之生成器模式(Builder)也叫建造者模式 (二)

2014-11-24 10:26:36 · 作者: · 浏览: 1

*/
public void export(ExportHeaderModel ehm, Map> mapData, ExportFooterModel efm) {
// 用来记录最终输出的文件内容
StringBuffer buffer = new StringBuffer();
// 1:先来拼接文件头的内容
buffer.append(ehm.getDepId() + "," + ehm.getExportDate() + "\n");
// 2:接着来拼接文件体的内容
for (String tblName : mapData.keySet()) {
// 先拼接表名称
buffer.append(tblName + "\n");
// 然后循环拼接具体数据
for (ExportDataModel edm : mapData.get(tblName)) {
buffer.append(edm.getProductId() + "," + edm.getPrice() + "," + edm.getAmount() + "\n");
}
}
// 3:接着来拼接文件尾的内容
buffer.append(efm.getExportUser());


// 为了演示简洁性,这里就不去写输出文件的代码了
// 把要输出的内容输出到控制台看看
System.out.println("输出到文本文件的内容:\n" + buffer);
}
}

package demo07.builder.example1;


import java.util.Collection;
import java.util.Map;


/**
* 导出数据到文本文件的对象
*/
public class ExportToTxt {
/**
* 导出数据到文本文件
*
* @param ehm
* 文件头的内容
* @param mapData
* 数据的内容
* @param efm
* 文件尾的内容
*/
public void export(ExportHeaderModel ehm, Map> mapData, ExportFooterModel efm) {
// 用来记录最终输出的文件内容
StringBuffer buffer = new StringBuffer();
// 1:先来拼接文件头的内容
buffer.append(ehm.getDepId() + "," + ehm.getExportDate() + "\n");
// 2:接着来拼接文件体的内容
for (String tblName : mapData.keySet()) {
// 先拼接表名称
buffer.append(tblName + "\n");
// 然后循环拼接具体数据
for (ExportDataModel edm : mapData.get(tblName)) {
buffer.append(edm.getProductId() + "," + edm.getPrice() + "," + edm.getAmount() + "\n");
}
}
// 3:接着来拼接文件尾的内容
buffer.append(efm.getExportUser());


// 为了演示简洁性,这里就不去写输出文件的代码了
// 把要输出的内容输出到控制台看看
System.out.println("输出到文本文件的内容:\n" + buffer);
}
}2.5导出数据到XML文件的对象
[java]
package demo07.builder.example1;


import java.util.Collection;
import java.util.Map;


/**
* 导出数据到XML文件的对象
*/
public class ExportToXml {
/**
* 导出数据到XML文件
*
* @param ehm
* 文件头的内容
* @param mapData
* 数据的内容
* @param efm
* 文件尾的内容
*/
public void export(ExportHeaderModel ehm, Map> mapData, ExportFooterModel efm) {
// 用来记录最终输出的文件内容
StringBuffer buffer = new StringBuffer();
// 1:先来拼接文件头的内容
buffer.append("< xml version='1.0' encoding='gb2312' >\n");
buffer.append("\n");
buffer.append("

\n");
buffer.append(" " + ehm.getDepId() + "\n");
buffer.append(" " + ehm.getExportDate() + "\n");
buffer.append("
\n");
// 2:接着来拼接文件体的内容
buffer.append(" \n");
for (String tblName : mapData.keySet()) {
// 先拼接表名称
buffer.append(" \n");
// 然后循环拼接具体数据
for (ExportDataModel edm : mapData.get(tblName)) {
buffer.append(" \n");
buffer.append(" " + edm.getProductId() + "\n");
buffer.append(" " + edm.getPrice() + "\n");
buffer.append(" " + edm.getAmount() + "\n");
buffer.append("
\n");
}
buffer.append("
\n");
}
buffer.append(" \n");
// 3:接着来拼接文件尾的内容
buffer.append("
\n");
buffer.append(" " + efm.getExportUser() + "\n");
buffer.append("
\n");
buffer.appen