4.5.2 Why we Use the Factory Pattern