这我正在学习建造者模式,请问这里为什么必须用static?
public class ImpoveSource {
//课程名字
private String courseName;
//课程ppt
private String coursePPT;
//课程视频
private String courseVideo;
//课程标题
private String courseTitle;
//课程的问题和答案
private String courseQA;
@Override
public String toString() {
return "ImpoveSource{" +
"courseName='" + courseName + '\'' +
", coursePPT='" + coursePPT + '\'' +
", courseVideo='" + courseVideo + '\'' +
", courseTitle='" + courseTitle + '\'' +
", courseQA='" + courseQA + '\'' +
'}';
}
public ImpoveSource(ImproveCourseBuilder improveCourseBuilder){
this.courseName = improveCourseBuilder.courseName;
this.coursePPT = improveCourseBuilder.coursePPT;
this.courseVideo = improveCourseBuilder.courseVideo;
this.courseTitle = improveCourseBuilder.courseArticle;
this.courseQA = improveCourseBuilder.courseQA;
}
//开始构造
public static class ImproveCourseBuilder{
private String courseName;
private String coursePPT;
private String courseVideo;
private String courseArticle;
private String courseQA;
public ImproveCourseBuilder buildCourseName(String courseName){
this.courseName = courseName;
return this;
}
public ImproveCourseBuilder buildCoursePPT(String coursePPT){
this.coursePPT = coursePPT;
return this;
}
public ImproveCourseBuilder buildCourseVideo(String courseVideo){
this.courseVideo = courseVideo;
return this;
}
public ImproveCourseBuilder buildCourseArticle(String courseArticle){
this.courseArticle = courseArticle;
return this;
}
public ImproveCourseBuilder buildCourseQA(String courseQA){
this.courseQA = courseQA;
return this;
}
//构建器
public ImpoveSource build(){
return new ImpoveSource(this);
}
}
}
public class ImproveSourceTes {
public static void main(String[] args) {
ImpoveSource build = new ImpoveSource.ImproveCourseBuilder()
.buildCourseName("java")
.buildCourseArticle("springboot入门到入土")
.buildCoursePPT("springboot入门到入土PPT")
.buildCourseVideo("springboot入门到入土视频")
.buildCourseQA("springboot入门到入土问题答疑")
.build();
System.out.println(build);
}
}
只有 builder 配置 static , 在外面 才可以使用 ImpoveSource.建造者类
如果不是static,在外面,需要 (new ImpoveSource()).建造者类