java Builder模式创建不可变类
package com.geostar.gfstack.operationcenter.logger.manager.common; /** * Created by Nihaorz on 2017/8/14. */ public class DBConfig { private String driver; private String url; private String username; private String password; public static class Builder { private String driver; private String url; private String username; private String password; public Builder(){ super(); } public Builder driver(String driver) { this.driver = driver; return this; } public Builder url(String url) { this.url = url; return this; } public Builder username(String username) { this.username = username; return this; } public Builder password(String password) { this.password = password; return this; } public DBConfig build(){ return new DBConfig(this); } } private DBConfig(Builder builder) { driver = builder.driver; url = builder.url; username = builder.username; password = builder.password; } public String getDriver() { return driver; } public String getUrl() { return url; } public String getUsername() { return username; } public String getPassword() { return password; } @Override public String toString() { return "DBConfig{" + "driver='" + driver + '\'' + ", url='" + url + '\'' + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; } }
DBConfig类只有一个私有构造函数,没有setter方法