builer链式创建对象

package com.atguigu.springcloud.entities;

/**
 * Created by IntelliJ IDEA.
 * User: zhuangzibing
 * Date: 2020/7/16
 */
public class MessageTask {
    private String taskId;
    private String content;
    private String messageId;
    private String taskName;

    //2创建个构造函数
    private MessageTask(Builder builder){
        this.taskId = builder.taskId;
        this.content = builder.content;
        this.messageId = builder.messageId;
        this.taskName = builder.taskName;
    }

    //1创建静态内部类
    public static class Builder{
        private String taskId;
        private String content;
        private String messageId;
        private String taskName;

        //3在Builder内部类创建domain属性的赋值方法,返回值是Builder
        // 赋值属性的方法(返回的是Builder)
        public Builder setTaskId(String taskId) {
            this.taskId = taskId;
            return this;
        }
        public Builder setContent(String content) {
            this.content = content;
            return this;

        }
        public Builder setMessageId(String messageId) {
            this.messageId = messageId;
            return this;

        }
        public Builder setTaskName(String taskName) {
            this.taskName = taskName;
            return this;
        }


        // 4在Builder内部类创建一个builde方法,返回domain实例
        public MessageTask build() {
            return new MessageTask(this);
        }
    }
}

使用方式:先创建Builder对象,然后用Builder去赋值,最后再调用build()返回真正的实例:

MessageTask.Builder builder = new MessageTask.Builder();
MessageTask task = builder.setContent("123")
  .setTaskId("123")
  .setTaskName("一起来玩")
  .setMessageId(String.valueOf(ThreadLocalRandom.current().nextLong()))
  .build();

 

 

借助工具使用建造者模式

Lombok后,在类上加上一个注解@Builder

@Builder
@Data
public class MessageTask {
    private String taskId;
    private String content;
    private String messageId;
    private String taskName;
}

IDEA也有插件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值