First point
sonBuilder.sonProperty("aString").parentProperty(1).build();
it works and creates a parent instead of the Son
, parentProperty() a ParentBuilder:
public ParentBuilder parentProperty(int parentPropertyValue) {...
ParentBuilder.build() Parent:
public Parent build() {
return new Parent(parentProperty);
}
sonBuilder.parentProperty(1).sonProperty("aString").build();
, parentProperty() a ParentBuilder.
ParentBuilder, , sonProperty().
.
, .
SonBuilder ParentBuilder, ParentBuilder.
:
class SonBuilder {
private String sonProperty;
private ParentBuilder parentBuilder = new ParentBuilder();
public SonBuilder sonProperty(String sonProperty) {
this.sonProperty = sonProperty;
return this;
}
public SonBuilder parentProperty(int parentPropertyValue) {
parentBuilder.parentProperty(parentPropertyValue);
return this;
}
public Son build() {
return new Son(parentBuilder.parentProperty, sonProperty);
}
}
Son:
SonBuilder sonBuilder = new SonBuilder();
Son son = sonBuilder.sonProperty("aString").parentProperty(1).build();