Java的链式编程和builder

  1. 什么是链式编程?

    mStudentBuilder.name("LiHua").age(18).create().toString()
    

    就是可以像这样链式不断的调用的样子,可以让代码的可读性比较高。原理的话就是返回一个this对象,使得可以不断的调用。

  2. 什么是Builder模式

    Builder模式就是一个构建对象的过程,一个比较复杂的对象可以让Builder去构建


  1. 实例

    • 创建一个Student的数据结构类

      public class Student {
          private String name;
          private int age;
      
          public String getmName() {
              return name;
          }
      
          public void setmName(String mName) {
              this.name = mName;
          }
      
          public int getmAge() {
              return age;
          }
      
          public void setmAge(int mAge) {
              this.age = mAge;
          }
      
          @Override
          public String toString() {
              return "Student{" +
                      "mName='" + name + '\'' +
                      ", mAge=" + age +
                      '}';
          }
      }
      
      
    • 一个StudentBuilder的构造模式

      public class StudentBuilder {
          private Student mStudent = new Student();
      
          public StudentBuilder name(String name) {
              mStudent.setmName(name);
              return this;
          }
      
          public StudentBuilder age(int age) {
              mStudent.setmAge(age);
              return this;
          }
      
          public Student create(){
              return mStudent;
          }
      
      }
      
      

      可以看到直接在Builder中返回一个Student对象;Builder中的方法都会返回一个this,实际上是返回本对象,达到链式的效果。

    • 验证一下

      public class Test {
          public static void main(String[] args){
              StudentBuilder mStudentBuilder = new StudentBuilder();
              Student mStudent = mStudentBuilder.name("LiHua").age(18).create();
              System.out.println(mStudent.toString());
          }
      }
      
      

      输出的结果是:Student{mName=‘LiHua’, mAge=18}

你可能感兴趣的:(JAVA)