Design pattern samples in Java.
Intent: Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
Intent: Separate the construction of a complex object from its representation so that the same construction process can create different representations.