设计模式之建造者模式(创建型)
建造者模式的概念及应用场景
-
概念 建造者模式是将一个复杂对象的构建过程与它的表示分离。 应用场景 如果一个对象有非常复杂的内部结构(很多属性),可以将复杂对象的创建和使用进行分离,还适用于以下几个方面 相同的方法,不同的执行顺序,产生不同的结果时 多个部件或零件,都可以装配到一个对象中,但是产生的结果又不相同 产品类非常复杂,或者产品类中的调用顺序不同产生不同的作用 当初始化一个对象特别复杂,参数多,而且很多参数都具有默认值时
基本写法
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类图图解