El documento describe el patrón de diseño Abstract Factory. Abstract Factory proporciona una interfaz para crear familias de objetos relacionados sin especificar sus clases concretas. Se usa para crear familias de widgets que comparten características comunes pero tienen diferencias para diferentes sistemas operativos o interfaces gráficas. Abstract Factory aísla el código del cliente de las clases de implementación y permite cambiar fácilmente entre familias de productos.