06.Lombok-建造者模式和@Builder注解

35 阅读1分钟

06.Lombok-建造者模式和@Builder注解

建造者模式是一种设计模式,又称构造者模式。

lombok使用@Data注解帮我们生成了setter和getter方法,我们给属性赋值的时候,有两种方式

  • set方式
  • 有参构造传值方式

set方式和有参构造传值方式给类属性赋值

package com.lzh;

import com.lzh.dao.UserDao;
import org.junit.jupiter.api.Test;

/**
 * @Author:kaiyang.cui
 * @Package:com.lzh
 * @Project:1024shop-manager
 * @name:MainTest
 * @Date:2023/3/29 下午10:21
 * @Filename:MainTest
 * @Description:传统的给类赋值,并调用toString打印属性信息
 * @Version:1.0
 */

public class MainTest {

    @Test
    public void test(){
        UserDao userDao1 = new UserDao();
        userDao1.setId(1);
        userDao1.setName("kaiyang");
        userDao1.setAge(18);
        System.out.println("userDao1 = " + userDao1);
        
        UserDao userDao2 = new UserDao(2,"lzh",18);
        System.out.println("userDao2 = " + userDao2);
    }

}

构造者模式 @Builder

UserDao.java

package com.lzh.dao;

import lombok.*;

/**
 * @Author:kaiyang.cui
 * @Package:com.lzh.dao
 * @Project:1024shop-manager
 * @name:UserDao
 * @Date:2023/3/29 下午7:44
 * @Filename:UserDao
 * @Description:UserDao
 * @Version:1.0
 */
@Data
@Builder
public class UserDao {
    private int id;
    private String name;
    private int age;
}

测试类MainTest.java

package com.lzh;

import com.lzh.dao.UserDao;
import org.junit.jupiter.api.Test;

/**
 * @Author:kaiyang.cui
 * @Package:com.lzh
 * @Project:1024shop-manager
 * @name:MainTest
 * @Date:2023/3/29 下午10:21
 * @Filename:MainTest
 * @Description@Builder 构造者模式
 * @Version:1.0
 */

public class MainTest {

    @Test
    public void test() {
        UserDao.UserDaoBuilder kaiyang = UserDao.builder()
                .id(1)
                .name("kaiyang")
                .age(18);
        System.out.println("kaiyang = " + kaiyang);

    }

}

Result:

kaiyang = UserDao.UserDaoBuilder(id=1, name=kaiyang, age=18)

构造者模式是典型的链式编程,开发中用的很多。

好了本期就到这里,我们下期再见。