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();