67,513
社区成员
发帖
与我相关
我的任务
分享
package org.xx.build.xxxl;
/**
* Created by chenxiangning on 14-9-16.
* 考试卷子的构建,
*/
public interface ExamBuilder {
/**
* 这是一个规范,卷纸各部分信息
*/
public void titleBuild();
public void nameBuild();
public void levelBuild();
public void subjectsBuild();
public void dateBuild();
}
package org.xx.build.xxxl;
import java.util.HashMap;
import java.util.Map;
/**
* Created by chenxiangning on 14-9-16.
* 一些数据
*/
public enum QuestionBank {
Chinese(new HashMap(){
{
put("1",new String[]{"Chinese问题1","答案1"});
put("2",new String[]{"Chinese问题2","答案2"});
put("3",new String[]{"Chinese问题3","答案3"});
}
}),
English(new HashMap(){
{
put("1",new String[]{"English问题1","答案1"});
put("2",new String[]{"English问题2","答案2"});
put("3",new String[]{"English问题3","答案3"});
}
}),
Math(new HashMap(){
{
put("1",new String[]{"Math问题1","答案1"});
put("2",new String[]{"Math问题2","答案2"});
put("3",new String[]{"Math问题3","答案3"});
}
});
private Map data = new HashMap();
private QuestionBank(HashMap data){
this.data = data;
}
public Map getData() {
return data;
}
}
package org.xx.build.xxxl;
import java.util.Iterator;
import java.util.Map;
/**
* Created by chenxiangning on 14-9-16.
* 试卷结构
*/
public class ExamPaper {
private String title;
private String name;
private String level;
private String subjects;
private QuestionBank date;
ExamPaper() {
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
public String getSubjects() {
return subjects;
}
public void setSubjects(String subjects) {
this.subjects = subjects;
}
public QuestionBank getDate() {
return date;
}
public void setDate(QuestionBank date) {
this.date = date;
}
@Override
public String toString() {
return "ExamPaper{" +
"title='" + title + '\'' +
", name='" + name + '\'' +
", level='" + level + '\'' +
", subjects='" + subjects + '\'' +
", date=" + showDate() +
'}';
}
private String showDate() {
String res = "";
Map map = date.getData();
Iterator mapKey3 = map.entrySet().iterator();
while (mapKey3.hasNext()) {
Map.Entry e = (Map.Entry) mapKey3.next();
res += e.getKey() + " "
+ ((String[]) e.getValue())[0] + " "
+ ((String[]) e.getValue())[1];
}
return res;
}
}
package org.xx.build.xxxl;
/**
* Created by chenxiangning on 14-9-16.
*/
public class ConcreteExamBuilder implements ExamBuilder {
private ExamPaper examPaper;
private String title;
private String name;
private String level;
private String subjects;
private QuestionBank bank;
public ConcreteExamBuilder settingNewExamPaper() {
this.examPaper = new ExamPaper();
return this;
}
public ConcreteExamBuilder setBank(QuestionBank bank) {
this.bank = bank;
return this;
}
public ConcreteExamBuilder setTitle(String title) {
this.title = title;
return this;
}
public ConcreteExamBuilder setName(String name) {
this.name = name;
return this;
}
public ConcreteExamBuilder setLevel(String level) {
this.level = level;
return this;
}
public ConcreteExamBuilder setSubjects(String subjects) {
this.subjects = subjects;
return this;
}
@Override
public void titleBuild() {
examPaper.setTitle(title);
}
@Override
public void nameBuild() {
examPaper.setName(name);
}
@Override
public void levelBuild() {
examPaper.setLevel(level);
}
@Override
public void subjectsBuild() {
examPaper.setSubjects(subjects);
}
@Override
public void dateBuild() {
examPaper.setDate(bank);
}
public ExamPaper getExamPaper() {
return examPaper;
}
}
package org.xx.build.xxxl;
/**
* Created by chenxiangning on 14-9-16.
*/
public class TeacherDirector {
private ExamBuilder builder;
public TeacherDirector setBuilder(ExamBuilder builder) {
this.builder = builder;
return this;
}
public void construct(){
builder.titleBuild();
builder.nameBuild();
builder.levelBuild();
builder.subjectsBuild();
builder.dateBuild();
}
}
package org.xx.build.test;
import org.xx.build.xxxl.*;
/**
* Created by chenxiangning on 14-9-16.
*/
public class Txxxl {
public static void main(String[] args) {
ConcreteExamBuilder yw = new ConcreteExamBuilder();
yw.settingNewExamPaper().setLevel("A")
.setSubjects("语文").setName("xxxxxx")
.setTitle("2014年高一语文考试卷子")
.setBank(QuestionBank.Chinese);
TeacherDirector teacher = new TeacherDirector();
teacher.setBuilder(yw).construct();
ExamPaper paperCh = yw.getExamPaper();
System.out.println(paperCh);
ConcreteExamBuilder sx = new ConcreteExamBuilder();
sx.settingNewExamPaper().setLevel("SSS")
.setSubjects("数学")
.setBank(QuestionBank.Math);
teacher.setBuilder(sx).construct();
ExamPaper paperMath = sx.getExamPaper();
System.out.println(paperMath);
/**
ExamPaper{title='2014年高一语文考试卷子', name='xxxxxx', level='A',
subjects='语文', date=3 Chinese问题3 答案32 Chinese问题2 答案21 Chinese问题1 答案1}
ExamPaper{title='null', name='null', level='SSS',
subjects='数学', date=3 Math问题3 答案32 Math问题2 答案21 Math问题1 答案1}
*/
}
}