设计模式之建造者模式(创建型)

建造者模式的概念及应用场景

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

基本写法

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

而且它只会生成一个字符串,如果我们自己拼接,会生成多个字符串

经验分享 程序员 微信小程序 职场和发展