想必受过 POJO 中 getter、setter、toString 方法折磨的同学都用过 Lombok,今天我们就一起来探讨一下 Lombok 中是怎样实现 Builder 模式的。
User 类
假设我们存在这样一个 POJO 类,而且客户端在构建 User 对象时并非所有的字段都是必选的。
1 | public class User { |
1 | public class Address { |
不用 Builder 模式
为了满足上述场景,我们需要为 User 类构建如下所示的构造函数。
1 | public User(String name) { |
不但有着繁杂的构造函数,而且客户端调用时还需要注意传参的顺序。
使用 Builder 模式
通过 Lombok 中 @Builder 注解生成的 User 类。
1 | public class User { |
而客户端只需要一行代码就可以生成任意入参的 User 对象,十分方便。
1 | User user = User.builder().name("小明").age(13).build(); |
总结
- Builder 模式可以避免繁杂的构造函数。
- Builder 模式可以简洁客户端的代码。