设计模式-建造者模式

为什么需要建造者模式

  1. 可选参数过多的类进行初始化的时候需要很多的构造函数。
  2. 这种类不管是在实现还是初始化都比较麻烦。

使用场景

当一个类的构造函数参数超过4个,并且有些参数还是可选的参数,考虑使用建造者模式。

实现方式(链式调用)

看一下Lombok是如何实现的。

@Builder
public class User {
    private final Integer code = 200;
    private String username;
    private String password;
}

// 编译后:
public class User {
    private String username;
    private String password;
    User(String username, String password) {
        this.username = username; this.password = password;
    }
    public static User.UserBuilder builder() {
        return new User.UserBuilder();
    }

    public static class UserBuilder {
        private String username;
        private String password;
        UserBuilder() {}

        public User.UserBuilder username(String username) {
            this.username = username;
            return this;
        }
        public User.UserBuilder password(String password) {
            this.password = password;
            return this;
        }
        public User build() {
            return new User(this.username, this.password);
        }
        public String toString() {
            return "User.UserBuilder(username=" + this.username + ", password=" + this.password + ")";
        }
    }
}

更多关于Lombok如何实现的细节

全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
04-22 21:10
投递恒生电子股份有限公司等公司10个岗位
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务