Joshua Bloch的Builder模式和PMD警告
||
我使用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;
}
}
但是PMD报告了2条警告:
(指向方法Builder.build())
避免通过私有构造函数从外部实例化
构造函数的类。
通过私有实例化
外部的构造函数
构造函数的类经常导致
访问器的生成。一个工厂
方法或非私有化
构造函数可以消除这种情况
情况。生成的类文件
实际上是一个接口。它给
访问类的能力
调用新的隐藏包范围
带接口的构造函数
作为补充参数。这个
变成私有构造函数
与包装有效地合而为一
范围,对
辨别。
类无法实例化,并且
不提供任何静态方法
或字段。有私人课程
构造函数,没有任何
静态方法或字段不能为
用过的。
我应该忽略这些警告吗?
另一个问题:类Pizza
和Builder
中的私有字段是重复的。当私有字段的数量增加时,这将很烦人。有什么办法可以避免呢?
没有找到相关结果
已邀请:
2 个回复
懊毁暗
臀夯脖锑