设计模式之建造者模式(创建型)
建造者模式的概念及应用场景
-
概念 建造者模式是将一个复杂对象的构建过程与它的表示分离。 应用场景 如果一个对象有非常复杂的内部结构(很多属性),可以将复杂对象的创建和使用进行分离,还适用于以下几个方面 相同的方法,不同的执行顺序,产生不同的结果时 多个部件或零件,都可以装配到一个对象中,但是产生的结果又不相同 产品类非常复杂,或者产品类中的调用顺序不同产生不同的作用 当初始化一个对象特别复杂,参数多,而且很多参数都具有默认值时
基本写法
public class CourseBuilder {
private Course course = new Course();
public CourseBuilder addName(String name) {
course.setName(name);
return this;
}
public CourseBuilder addPPT(String ppt) {
course.setPpt(ppt);
return this;
}
public CourseBuilder addVideo(String video) {
course.setVideo(video);
return this;
}
public CourseBuilder addNote(String note) {
course.setNote(note);
return this;
}
public CourseBuilder addHomework(String homework) {
course.setHomework(homework);
return this;
}
public Course build() {
return this.course;
}
@Data
public class Course {
private String name;
private String ppt;
private String video;
private String note;
private String homework;
@Override
public String toString() {
return "CourseBuilder{" +
"name=" + name + +
", ppt=" + ppt + +
", video=" + video + +
", note=" + note + +
", homework=" + homework + +
};
}
}
}
public class Test {
public static void main(String[] args) {
CourseBuilder builder = new CourseBuilder()
.addName("设计模式")
.addPPT("【PPT课件】")
.addVideo("【回放视频】")
.addNote("【课堂笔记】")
.addHomework("【课后作业】");
System.out.println(builder.build());
源码的应用
StringBuilder
而且它只会生成一个字符串,如果我们自己拼接,会生成多个字符串
下一篇:
23种设计模式UML类图图解
