一、生成器模式
封装一个复杂对象构造过程,并允许按步骤构造
生成器模式
二、示例
度假计划生成项目:时间、门票、餐厅、住宿、特殊活动等,一个计划就是一个具体对象,要便于扩展
对于用户来说关心的只是选择计划的种类,例如3日游、4日游和他的旅行开始时间,然后得到计划的细节安排
此处则使用生成器模式,将不同的计划安排制定成模板,选择不同的模板引入旅游的开始日期即可生成计划书
1.定义旅游安排的对象和属性
/**
* 旅游安排的对象,定义旅游日期,酒店,门票以及活动等属性和基础方法
*/
public class VacationDay {
private Date mDate;
private String mHotels;
private ArrayList mTickets = null;
private ArrayList mEvents = null;
public VacationDay(Date date) {
mDate = date;
mTickets = new ArrayList();
mEvents = new ArrayList();
}
public void setDate(Date date) {
mDate = date;
}
public void setHotel(String mHotels) {
this.mHotels = mHotels;
}
public void addTicket(String ticket) {
mTickets.add(ticket);
}
public void addEvent(String event) {
mEvents.add(event);
}
public String showInfo() {
StringBuilder stb = new StringBuilder();
stb.append("Date:" + mDate.toString() + "\n");
stb.append("Hotel:" + mHotels + "\n");
stb.append("Tickets:" + mTickets.toString() + "\n");
stb.append("Events" + mEvents.toString() + "\n");
return stb.toString();
}<