Design Patterns class 02: Factory