Java中builder的使用

简介: Java中builder的使用

什么是Builder模式?

builder模式也叫建造者模式,builder模式的作用将一个复杂对象的构建与他的表示分离使用者可以一步一步的构建一个比较复杂的对象

例如有一个User类如下:

public class User {
  private String id ;
  private String name ;
  private Integer age ;
 // ignore getter/setter 
 }

Builder模式实现步骤

  1. User类中创建一个静态内部类 Builder
  2. Builder 类中,包含User类的全部属性
  3. Builder 类中,每个属性创建赋值方法,并返回当前对象 ,如:
public Builder id(String id) {
        this.id = id ;
        return this;
   }
  1. Builder 类中,每个属性创建赋值方法,并返回当前对象 ,如:
public Builder id(String id) {
        this.id = id ;
        return this;
   }
User类中,创建静态builder方法,返回Builder对象
• 1
public static Builder builder(){
        return new Builder();
  }
  1. 完整代码如下:
public class User {
  private String id ;
  private String name ;
  private Integer age ;
  public static Builder builder(){
    return new Builder();
  }
  public static class Builder{
    private String id ;
    private String name ;
    private Integer age ;
    public Builder id(String id) {
      this.id = id ;
      return this;
    }
    public Builder name(String name) {
      this.name = name ;
      return this ;
    }
    public Builder age(Integer age) {
      this.age = age ; 
      return this;
    }
    public User build() {
      return new User(this);
    }
    public User build2() {
      return new User(this.id , this.name , this.age);
    }
  }
  public String getId() {
    return id;
  }
  public void setId(String id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public Integer getAge() {
    return age;
  }
  public void setAge(Integer age) {
    this.age = age;
  }
  public User() {
    super();
  }
  public User(String id, String name, Integer age) {
    super();
    this.id = id;
    this.name = name;
    this.age = age;
  }
  public User(Builder builder) {
    this.id = builder.id;
    this.name = builder.name ;
    this.age = builder.age;
  }
}
  1. 如何使用:
public static void main(String[] args) {
    User user = User.builder()
                .id("11")
                .name("小明")
                .age(17)
                .build();
    System.out.println(user);
  }

总结

1、Builder 模式创建步骤:

在类中,创建一个静态内部类,包含外部类的全部属性;

在内部类中,为每一个属性进行赋值;

内部类中创建 build 方法,返回外部类对象

在外部类中创建静态 builder方法,返回内部类对象


2、Builder 模式调用步骤:

外部类调用静态builder方法创建内部类对象

内部对象.属性名 方法,进行赋值

调用 build 方法,完成外部类对象创建,并初始化赋值

3、快速生成代码插件推荐↓

相关文章
|
7月前
|
设计模式 缓存 Java
【设计模式——学习笔记】23种设计模式——建造者模式Builder(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——建造者模式Builder(原理讲解+应用场景介绍+案例介绍+Java代码实现)
59 0
|
10月前
|
设计模式 Java
Java建造者模式(Builder Pattern)
Java建造者模式(Builder Pattern)
|
12月前
|
设计模式 算法 Java
Java设计模式-建造者模式(Builder)
Java设计模式-建造者模式(Builder)
|
设计模式 Java
Java建造者模式(Builder pattern)
Java建造者模式(Builder pattern)
102 0
Java建造者模式(Builder pattern)
Java中lombok @Builder注解使用详解
Java中lombok @Builder注解使用详解
|
设计模式 Java
Java的二十三种设计模式(建造者模式(Builder))
Java的二十三种设计模式(建造者模式(Builder))
92 0
|
Java
使用lombok的@Builder的注解:Error:java: 无法将类中的构造器应用到给定类型
使用lombok的@Builder的注解:Error:java: 无法将类中的构造器应用到给定类型
978 0
使用lombok的@Builder的注解:Error:java: 无法将类中的构造器应用到给定类型
|
设计模式 算法 Java
浅谈JAVA设计模式之——建造者模式(Builder)
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
129 0
浅谈JAVA设计模式之——建造者模式(Builder)
|
存储 设计模式 Java
JAVA设计模式(04):创建型-建造模式(Builder)
转载自: http://blog.csdn.net/lovesomnus/article/details/23743049
148 0
JAVA设计模式(04):创建型-建造模式(Builder)
|
Java UED 开发者
java基础之builder模式
Builder 使用创建者模式又叫建造者模式
822 0