Java (# ) :
, :
Interface DoFirstThing {
DoSecondThing doFirst();
}
Interface DoSecondThing {
DoLastThing doSecond();
}
Interface DoLastThing {
BuilderReady doLast();
}
Interface BuilderReady {
Result build();
}
class BuilderWithForcedSequence implements DoFirstThing, DoSecondThing, DoLastThing, BuilderReady {
}
, , factory factory, :
public DoFirstThing createNewBuilderWithForcedSequence(requiredParameters){
return new BuilderWithForcedSequence(requiredParameters);
}
Builder ( doThat ), doFirst(), doSecond()... , , obiect , build().
Result result = builder.doFirst().doSecond().doLast().build();
EDIT:
, :)