אפס אחד אינסוף

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש

אפס אחד אינסוףאנגלית: Zero One Infinity, ובקיצור: ZOI) הוא כלל אצבע בעיצוב תוכנה הטוען שיש להימנע מהגבלה שרירותית על מספר המופעים של ישות מסוימת, ושהמגבלה על מספר המופעים צריכה להיות אחת משלוש האפשרויות הבאות:

  • איסור מוחלט על הקיום של הישות (אפס).
  • קיום מופע אחד בלבד של הישות (אחד).
  • אין להגביל את מספר המופעים של הישות, למעט מגבלות פיזיות של המחשב כמו זיכרון (אינסוף).

במשפט אחד הכלל מנוסח כך: "או שאין לאפשר את הקיום של הישות, או שיש לאפשר מופע אחד בלבד של הישות או שיש לאפשר אינסוף מופעים של הישות".

ההיגיון שעומד מאחורי כלל זה הוא שיש סיבות שמצדיקות איסור קיום של ישות מסוימת, למשל כדי להימנע מפעולה מסוימת. יש סיבות המצדיקות קיום של ישות אחת ויחידה, שכן אם תהיה יותר מישות אחת שתעשה את הפעולה זה יהיה חסר היגיון (כפי שמאפשרת תבנית Singleton למשל). אך מרגע שהישות יכולה להתקיים בשניים או יותר מופעים, בדרך כלל אין שום סיבה לחסום את מספר המופעים שלה על ידי קבוע שרירותי N. השאלה שבאמצעותה יש לבחון האם N שרירותי היא "האם הגבלה ל-N מופעים טובה במשהו מהגבלה ל-N+1 מופעים?". אם אין תשובה טובה לשאלה זו - החסם צריך להיות אינסוף, שכן תמיד ניתן לקבוע את החסם בתור N+1 עד לאינסוף.

דוגמה: במדינה שבה אסורה הביגמיה ניתן להגביל במאגר הנתונים של מרשם התושבים את מספר בני הזוג של תושב לאחד. מאידך, את מספר ילדיו של התושב אין להגביל, משום שכל הגבלה תהיה שרירותית.

קישורים חיצוניים[עריכת קוד מקור | עריכה]