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)
构造者模式是典型的链式编程,开发中用的很多。
好了本期就到这里,我们下期再见。