1. Create a vehicle factory that produces different types of cars and vans by using the abstract
2. Implement that same vehicle factory as in the previous exercise but use @Produce , qualii ers,
and enum types.
3. By harnessing the power of the CDI container, implement a way to have multiple objects of the
same type and to select the type you require based on type‐safe logic.
1. Wikipedia.org: http://en.wikipedia.org/wiki/Dependency_inversion_principle .
Design Patterns: Elements of Reusable Object‐Oriented Software (Addison‐Wesley, 1994):
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides.
Head First Design Patterns (O'Reilly, 2004): Eric Freeman, Elisabeth Robson, Bert Bates,