建造者模式的链式调用是一种很常用的使用方式;
类图
代码
public class Course {
private String courseName;
private String courseVideo;
private String courseArticle;
private String coursePPT;
private String courseQA;
public Course(Builder builder) {
this.courseName = builder.courseName;
this.courseVideo = builder.courseVideo;
this.courseArticle = builder.courseArticle;
this.coursePPT = builder.coursePPT;
this.courseQA = builder.courseQA;
}
public static class Builder {
private String courseName;
private String courseVideo;
private String courseArticle;
private String coursePPT;
private String courseQA;
public Builder() {}
public Builder courseName(String val) {
this.courseName = val;
return this;
}
public Builder courseVideo(String val) {
this.courseVideo = val;
return this;
}
public Builder courseArticle(String val) {
this.courseArticle = val;
return this;
}
public Builder coursePPT(String val) {
this.coursePPT = val;
return this;
}
public Builder courseQA(String val) {
this.courseQA = val;
return this;
}
public Course build() {
return new Course(this);
}
}
@Override
public String toString() {
return "Course{" +
"courseName='" + courseName + '\'' +
", courseVideo='" + courseVideo + '\'' +
", courseArticle='" + courseArticle + '\'' +
", coursePPT='" + coursePPT + '\'' +
", courseQA='" + courseQA + '\'' +
'}';
}
}
客户端
public class Test {
public static void main(String[] args) {
Course course = new Course.Builder()
.courseName("Java设计模式精讲")
.courseVideo("Java设计模式精讲视频")
.coursePPT("Java设计模式精讲PPT")
.build();
System.out.println(course);
}
}
输出:
Course{courseName='Java设计模式精讲', courseVideo='Java设计模式精讲视频', courseArticle='null', coursePPT='Java设计模式精讲PPT', courseQA='null'}