Separates object construction from its representation. Separate the
construction of a complex object from its representation so that the
same construction processes can create different representations.
Builder focuses on constructing a complex object step by step. Abstract
Factory emphasizes a family of product objects(eighter simple or
complex). Builder returns the product as a final step, but as far as the
abstract Factory is concerned, the rpdocuct gets returned immediately.