public class Test {
private final String name;
private final String field;
private Test(TestBuilder builder) {
name = builder.name;
field = builder.field;
}
public static class TestBuilder {
private String name;
private String field;
public TestBuilder name(String name) {
this.name = name;
return this;
}
public TestBuilder field(String field) {
this.field = field;
return this;
}
public Test build() {
return new Test(this);
}
}
public static void main(String[] args) {
Test t = new Test.TestBuilder().
name("name").field("f").build();
}
}
Det har oven i købet den fornemme sideeffekt, at man får noget, der ligner navngivne parametre – dvs. ikke noget med at huske på, hvilken rækkefølge parametrene kommer i længere. Har en klasse nogle attributter, der er påkrævede, skal de bare tilføjes i constructoren til builderen.
Nu er der så bare lige nogen, der skal lave et lille source-plugin til eclipse, der lige som “Generate Setters and Getters” kan autogenerere sådan en builder – det burde ikke være noget videre problem.





