定义
- 将一个负责对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
- 用户只需指定需要建造的类型就可以得到他们,建造过程及细节不需要知道
类型
创建型
这个模式就不说废话了,大家应该都见过。平常见到的xxxBuilder就是了,就是一些链式调用。接下来举个例子:
public class Course {
private String name;
private String ppt;
private String video;
private String qa;
private Course(CourseBuilder courseBuilder) {
this.name = courseBuilder.name;
this.ppt = courseBuilder.ppt;
this.video = courseBuilder.video;
this.qa = courseBuilder.qa;
}
// 这里省略getter和setter
public static CourseBuilder builder(){
return new CourseBuilder();
}
public static class CourseBuilder{
private String name;
private String ppt;
private String video;
private String qa;
public CourseBuilder name(String name){
this.name = name;
return this;
}
public CourseBuilder ppt(String ppt){
this.ppt = ppt;
return this;
}
public CourseBuilder video(String video){
this.video = video;
return this;
}
public CourseBuilder qa(String qa){
this.qa = qa;
return this;
}
public Course build(){
return new Course(this);
}
}
}
然后应用层:
public static void main(String[] args) {
Course build = Course.builder()
.name("java")
.video("java video")
.ppt("ppt")
.qa("aaa")
.build();
System.out.println(build);
}
在字段很多的时候,还是这样看着爽点吧。
这里强烈给大家推荐一个lombok插件,安装这个插件后,代码就可改成这样:
@Builder
public class Course {
private String name;
private String ppt;
private String video;
private String qa;
}
可以自行了解一下lombok,还有很多其它功能,很好用的一个插件。
如果帮到你了,请点击右上角给个赞吧!!
欢迎访问我的博客:他和她的猫