באמצעות Abstract Factory ניתן לפתור את הבעיה התכנותית הבאה: כיצד לאפשר יצירתם של אובייקטים שונים אשר שייכים למשפחות שונות (לדוגמא: אובייקטים שמייצגים דגמי נעליים שונים שעשויים מעור זו משפחה אחת בעוד שאובייקטים אשר מייצגים את אותם דגמי נעליים רק שהם עשויים מגומי זו משפחה אחרת) באמצעות קריאה להפעלת מתודה ושליחת ערכים שמאפיינים את האובייקט שרוצים ליצור בדומה למימוש של Factory (מבלי שיהיה צורך לזכור באופן מדויק מהם ה-constructor שיש לקרוא להפעלתם) אך באופן שיאפשר לנו לבחור את האובייקט שמתפקד כ-Factory בהתאם למשפחת האובייקטים שבה מדובר. הוידאו קליפ הבא מספק הסבר בסיסי ל-Abstract Factory תוך שימוש בדוגמת קוד פשוטה ב-Java.
את קוד המקור שמופיע בוידאו קליפ ניתן להוריד בקישור abstract factory. תרשים ה-UML הבא מספק הסבר נוסף.

