Abstract Factory Pattern
נניח שאתם בונים UI Component Library שצריכה לרוץ על שלוש פלטפורמות: Web, iOS, ו-Android. כל פלטפורמה צריכה Button, Input, Modal, ו-Checkbox - אבל כל אחת נראית ומתנהגת אחרת. הבעיה היא לא ליצור Button אחד בצורות שונות - הבעיה היא לוודא שלא מערבבים Material Design Button עם iOS Input. כשמשתמשים ב-iOS Theme - כל הרכיבים צריכים להיות iOS. לא Material Button עם iOS Modal.
זו בדיוק הבעיה שה-Abstract Factory Pattern בא לפתור: יצירה משפחות של Objects קשורים שצריכים להיות תואמים זה לזה.
כדי להבין למה זה חשוב, חשוב להבין מה המשמעות של "תואמים". ב-UI Library, תאימות פירושה עיצוב עקבי: אותם עגלגלויות לפינות, אותם צבעים, אותה אנימציה. ב-Cloud Provider, תאימות פירושה Authentication, Error Codes, ו-URL Format שמתאימים לאותו Vendor. ערבוב פירושו שה-System לא עקבי - והמשתמש שם לב לזה, אפילו אם לא מבין למה.