Factory Method Design Pattern Code Example