Factory Method Design Pattern Java