The Pure Fabrication pattern
Assigns responsibility to an intermediate object
Creates a convenient class that supports high cohesion and low coupling
Creates a convenient class that supports low cohesion and high coupling
Protects the system from unexpected variations