cha*_*nce 5 java pmd builder-pattern
我使用Joshua Bloch的Builder模式编写了一个类,类似于这个Pizza示例:
public class Pizza {
private int size;
private boolean cheese;
private boolean pepperoni;
private boolean bacon;
public static class Builder {
//required
private final int size;
//optional
private boolean cheese = false;
private boolean pepperoni = false;
private boolean bacon = false;
public Builder(int size) {
this.size = size;
}
public Builder cheese(boolean value) {
cheese = value;
return this;
}
public Builder pepperoni(boolean value) {
pepperoni = value;
return this;
}
public Builder bacon(boolean value) {
bacon = value;
return this;
}
public Pizza build() {
return new Pizza(this);
}
}
private Pizza(Builder builder) {
size = builder.size;
cheese = builder.cheese;
pepperoni = builder.pepperoni;
bacon = builder.bacon;
}
}
Run Code Online (Sandbox Code Playgroud)
但PMD报告了2个警告:
我应该忽略这些警告吗?
另一个问题是:在类的私有字段Pizza和Builder重复的.当私人领域的数量越来越大时,这将是烦人的.有什么办法可以避免吗?
关于如何删除重复项。
我会得到更多的反对票:)但也许是这样的?
class Pizza {
private int size;
private boolean cheese;
private boolean pepperoni;
private boolean bacon;
public static class Builder {
private Pizza pizza = new Pizza();
public Builder(int size) {
pizza.size = size;
}
public Builder cheese(boolean value) {
pizza.cheese = value;
return this;
}
public Builder pepperoni(boolean value) {
pizza.pepperoni = value;
return this;
}
public Builder bacon(boolean value) {
pizza.bacon = value;
return this;
}
public Pizza build() {
return pizza;
}
}
private Pizza() {
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5475 次 |
| 最近记录: |