版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37776094/article/details/89633505
项目源码已提交github:https://github.com/ckl001/designPattem_java
package com.Ljava.design.pattem.creational.builder;
/**
* @Auther 20173
* @Date 2019-4-9 10:01
* @Des 课程 -- 建造者
* 链式操作
**/
public class Course {
private String courseName;
private String coursePPT;
private String courseVideo;
private String courseArticle;
private String courseQA;
//构建建造者
public Course(CourseBuilder courseBuilder) {
this.courseName = courseName;
this.coursePPT = coursePPT;
this.courseVideo = courseVideo;
this.courseArticle = courseArticle;
this.courseQA = courseQA;
}
@Override
public String toString() {
return "Course{" +
"courseName='" + courseName + '\'' +
", coursePPT='" + coursePPT + '\'' +
", courseVideo='" + courseVideo + '\'' +
", courseArticle='" + courseArticle + '\'' +
", courseQA='" + courseQA + '\'' +
'}';
}
//建造者
public static class CourseBuilder{
private String courseName;
private String coursePPT;
private String courseVideo;
private String courseArticle;
private String courseQA;
public CourseBuilder buildCourseName(String courseName){
this.courseName = courseName;
return this;
}
public CourseBuilder buildCoursePPT(String coursePPT) {
this.coursePPT = coursePPT;
return this;
}
public CourseBuilder buildCourseVideo(String courseVideo) {
this.courseVideo = courseVideo;
return this;
}
public CourseBuilder buildCourseArticle(String courseArticle) {
this.courseArticle = courseArticle;
return this;
}
public CourseBuilder buildCourseQA(String courseQA) {
this.courseQA = courseQA;
return this;
}
public Course build(){
return new Course(this);
}
}
}
package com.Ljava.design.pattem.creational.builder;
/**
* @Auther 20173
* @Date 2019-4-9 10:12
* @Des TODO
**/
public class Test {
public static void main(String[] args) {
Course course = new Course.CourseBuilder().buildCourseName("java建造者").buildCourseArticle("笔记").buildCourseQA("好嗨喔!").build();
System.out.println(course.toString());
}
}