21xrx.com
2025-07-07 02:45:19 Monday
文章检索 我的文章 写文章
Java中的生成器函数及应用场景
2023-06-18 00:47:52 深夜i     16     0
Java 生成器函数 Builder模式

Java中的生成器函数是指一种用于生成对象的函数,它是一种重载的构造函数,通过该函数可以定义对象的属性并返回该对象。这种方法可以有效地避免大量的set方法的重复调用,从而提升代码的可读性和简洁性。本文将介绍Java中生成器函数的基本用法,并给出一些实际应用场景。

生成器函数的基本用法很简单,只需要定义一个内部静态类Builder,将需要设置的属性作为Builder的实例变量,并且在Builder中定义一个build()方法来返回实际对象。具体代码如下:

public class Person{
  private final String name;
  private final int age;
  private final String gender;
  private Person(Builder builder)
    this.name = builder.name;
    this.age = builder.age;
    this.gender = builder.gender;
  
  public static class Builder{
    private String name;
    private int age;
    private String gender;
    public Builder setName(String name)
      this.name = name;
      return this;
    
    public Builder setAge(int age)
      this.age = age;
      return this;
    
    public Builder setGender(String gender)
      this.gender = gender;
      return this;
    
    public Person build(){
      return new Person(this);
    }
  }
}

在使用生成器函数时,只需先创建一个Builder对象,然后通过调用它的方法设置属性即可,最后调用build()方法获取实际对象。例如:

Person person = new Person.Builder()
        .setName("张三")
        .setAge(20)
        .setGender("男")
        .build();

使用生成器函数可以极大地简化代码,尤其是在属性比较多的情况下。此外,在一些需要复制对象的场景中,生成器函数也可以很好地发挥作用,如:

public class Person{
  private final String name;
  private final int age;
  private final String gender;
  public Person(Person other)
    this.name = other.name;
    this.age = other.age;
    this.gender = other.gender;
  
  public static class Builder
    ...
  
}

当然,生成器函数不仅仅适用于Java中的普通类,在很多其他场景也有类似的应用,例如使用Lombok的@Builder注解对实体类进行构建,或者使用Mybatis-Plus中的Wrapper构建查询条件等等。

  
  

评论区

    相似文章