1. Abstract Factory
nA program must be able to choose one of several families of classes nFor example, a program’s GUI should run on several platforms nEach platform comes with its own set of GUI classes:
n     WinButton, WinScrollBar, WinWindow
n     MotifButton, MotifScrollBar, MotifWindow
n    pmButton, pmScrollBar, pmWindow