Simple Java Implementation of the Abstract Factory Design Pattern