Abstract Factory pattern Pizza Store example in abstract-factory.vsd Example: Java's ability to run GUIs in different UI styles How could you design a system so that the UI style can be switched without modifying the application's source code? Generic diagram in abstract-factory.vsd Another Example: Different levels of difficulty in a computer game abstract factory creates different kinds of characters, objects, obstacles BeginnerFactory, IntermediateFactory, ExpertFactory