1、示例代码
import lombok.Data;
/**
* 地址相关配置
*
* @author wangmingcong
*/
@Data
public class UrlConfig {
/**
* 地址
*/
private String host;
/**
* 端口
*/
private Integer port;
/**
* 路径
*/
private String path;
/**
* 建造者
*/
public static final class Builder {
/**
* 配置文件
*/
private final UrlConfig urlConfig;
/**
* 私有构造函数
*/
private Builder() {
urlConfig = new UrlConfig();
}
/**
* 构建 建造者
*
* @return 返回 建造者
*/
public static Builder builder() {
return new Builder();
}
/**
* 赋值
*
* @param host 主机/地址
* @return 返回 建造者
*/
public Builder withHost(String host) {
urlConfig.setHost(host);
return this;
}
/**
* 赋值 端口
*
* @param host 端口
* @return 返回 建造者
*/
public Builder withPort(Integer port) {
urlConfig.setPort(port);
return this;
}
/**
* 赋值 路径
*
* @param host 路径
* @return 返回 建造者
*/
public Builder withPath(String path) {
urlConfig.setPath(path);
return this;
}
/**
* 构建
*
* @return 返回 建造者
*/
public Builder but() {
return builder()
.withHost(urlConfig.getHost())
.withPort(urlConfig.getPort())
.withPath(urlConfig.getPath());
}
/**
* 获取 配置文件
*
* @return 返回 配置文件
*/
public UrlConfig build() {
return urlConfig;
}
}
}
2、使用方式
UrlConfig.Builder.builder()
.setHost(AGENT_HOST)
.build()