Understanding the Factory Method Design Pattern