As seguintes situações justificam o uso do padrão Abstract Factory: o sistema deve ser independente de como os objetos são criados; o sistema deve poder ser configurado com diferentes famílias de classes; é necessário garantir que certas classes sejam usadas em conjunto.