Design Patterns in the 21st Century: The Abstract Factory Pattern