The main reason for using the builder is to create an immutable object: the builder is changed, what it creates is not (required).
If you delegate to the builder, your instance will be changed again: anyone who has a reference to the same instance of ObjectBuilder can modify your ObjectA . This means that any checks you perform against the validity of the ObjectA state at build time can be invalidated.
If you need a mutable object, there is no need for a linker: just set it to ObjectA .
source share