我使用的是建造者模式的幾件事情(如約書亞布洛赫的Effective Java
解釋),而且也涉及到一個特別討厭的重複:重複在Builder模式
public class Foo {
private String name;
private int age;
public static class Builder implements IBuilder {
private String name;
private int age;
Builder name(String value) {
name = value;
return this;
}
Builder age(int value) {
age = value;
return this;
}
Foo build() {
return new Foo(this);
}
}
private Foo(Builder builder) {
name = builder.name;
age = builder.age;
}
}
這是小,但惱人的。我必須在每個類中聲明變量。我試圖創建一個類與字段和擴展該類,但我得到的錯誤:{variable_name} has private access in {class_name}
。
有沒有辦法做到這一點,而不公開變量?
爲什麼不使用'protected'而不是'private'來處理這些變量? – Matzi
這甚至不是Builder模式。構建器模式不會將構建器作爲參數傳遞給構造函數。 –