O Abstract Factory é um padrão de projeto criacional que fornece uma interface para criar famílias de objetos relacionados sem especificar suas classes concretas. Ele define uma interface para criar objetos familiares, mas deixa as subclasses decidirem quais classes instanciar. O Abstract Factory permite que um sistema funcione com diferentes famílias de produtos sem precisar modificar o código cliente.