Java中builder的使用

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。Java中builder的使用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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 类中,创建 build方法,返回User对象并赋值 。
    ②Builder 类中,创建 build方法,返回builder实例,在User对象中赋值。

    (① ② 任选其一)

   public User build() {
        return new User(this.id , this.name , this.age);
    }
  1. User类中,创建静态builder方法,返回Builder对象
    
 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、快速生成代码插件推荐↓

在这里插入图片描述

参考博客: Java 设计模式 — Builder模式 Java Builder 模式

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/159813.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!