当前位置:编程学习 > JAVA >>

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

.场景模式
在讨论工厂方法模式的时候,提到了一个导出数据的应用框架,但是没有涉及到导出文本的每种方式具体会如何实现。现在我们就来解决这个问题
假设导出的文件,无论什么格式都分为三个部分,文件头,文件尾和文件体。
文件头:分公司或者门市点编号,导出数据的日期
文件尾:输出人
文件体:表名称
实现导出数据到文本文件和XML文件

2.代码模拟
2.1头文件内容
[java] 
package demo07.builder.example1; 
 
 
/**
 * 描述输出到文件头的内容的对象
 */ 
public class ExportHeaderModel { 
    /**
     * 分公司或门市点编号
     */ 
    private String depId; 
    /**
     * 导出数据的日期
     */ 
    private String exportDate; 
 
 
    public String getDepId() { 
        return depId; 
    } 
 
 
    public void setDepId(String depId) { 
        this.depId = depId; 
    } 
 
 
    public String getExportDate() { 
        return exportDate; 
    } 
 
 
    public void setExportDate(String exportDate) { 
        this.exportDate = exportDate; 
    } 

package demo07.builder.example1;


/**
 * 描述输出到文件头的内容的对象
 */
public class ExportHeaderModel {
 /**
  * 分公司或门市点编号
  */
 private String depId;
 /**
  * 导出数据的日期
  */
 private String exportDate;


 public String getDepId() {
  return depId;
 }


 public void setDepId(String depId) {
  this.depId = depId;
 }


 public String getExportDate() {
  return exportDate;
 }


 public void setExportDate(String exportDate) {
  this.exportDate = exportDate;
 }
}2.2输出数据的对象
[java]
package demo07.builder.example1; 
 
 
/**
 * 描述输出数据的对象
 */ 
public class ExportDataModel { 
    /**
     * 产品编号
     */ 
    private String productId; 
    /**
     * 销售价格
     */ 
    private double price; 
    /**
     * 销售数量
     */ 
    private double amount; 
 
 
    public String getProductId() { 
        return productId; 
    } 
 
 
    public void setProductId(String productId) { 
        this.productId = productId; 
    } 
 
 
    public double getPrice() { 
        return price; 
    } 
 
 
    public void setPrice(double price) { 
        this.price = price; 
    } 
 
 
    public double getAmount() { 
        return amount; 
    } 
 
 
    public void setAmount(double amount) { 
        this.amount = amount; 
    } 

package demo07.builder.example1;


/**
 * 描述输出数据的对象
 */
public class ExportDataModel {
 /**
  * 产品编号
  */
 private String productId;
 /**
  * 销售价格
  */
 private double price;
 /**
  * 销售数量
  */
 private double amount;


 public String getProductId() {
  return productId;
 }


 public void setProductId(String productId) {
  this.productId = productId;
 }


 public double getPrice() {
  return price;
 }


 public void setPrice(double price) {
  this.price = price;
 }


 public double getAmount() {
  return amount;
 }


 public void setAmount(double amount) {
  this.amount = amount;
 }
}2.3文件尾的内容的对象
[java] 
package demo07.builder.example1; 
 
 
/**
 * 描述输出到文件尾的内容的对象
 */ 
public class ExportFooterModel { 
    /**
     * 输出人
     */ 
    private String exportUser; 
 
 
    public String getExportUser() { 
        return exportUser; 
    } 
 
 
    public void setExportUser(String exportUser) { 
        this.exportUser = exportUser; 
    } 
 
 

package demo07.builder.example1;


/**
 * 描述输出到文件尾的内容的对象
 */
public class ExportFooterModel {
 /**
  * 输出人
  */
 private String exportUser;


 public String getExportUser() {
  return exportUser;
 }


 public void setExportUser(String exportUser) {
  this.exportUser = exportUser;
 }


}2.4导出数据到文本文件的对象
[java
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<String, Collection<ExportDataModel>> mapData, ExportFooterModel efm) { 
        // 用来记录最终

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,