הבדל מפתח - כריכה מוקדמת לעומת מאוחרת
Early Binding ו-Late Binding הם שני מושגים הקשורים לפולימורפיזם. הכריכה המוקדמת מתרחשת בזמן הידור ואילו הקישור המאוחר מתרחשת בזמן הריצה. ההבדל העיקרי בין כריכה מוקדמת למאוחרת הוא שהכריכה מוקדמת משתמשת במידע המחלקה כדי לפתור קריאות למתודה בעוד ש-Late Binding משתמש באובייקט כדי לפתור קריאת מתודה.
שפות תכנות כגון Java תומכות בתכנות מונחה עצמים (OOP). זוהי פרדיגמה המאפשרת בניית התוכנה או התוכנה באמצעות אובייקטים. ישנם מספר אובייקטים בתוכנה. אובייקטים אלו מחוברים זה לזה ומעבירים הודעות בשיטות.לכל חפץ יש מאפיינים והתנהגויות. המאפיינים מתוארים לפי המאפיינים או התכונות. ההתנהגויות מתוארות באמצעות שיטות. לאובייקט Student יכולים להיות מאפיינים כמו שם, גיל והם מיוצגים על ידי מאפיינים. לאובייקט תלמיד יכולות להיות התנהגויות כמו לימוד וקריאה, והן מיוצגות על ידי שיטות. אחד העמודים העיקריים של OOP הוא פולימורפיזם. זה מאפשר לאובייקט להתנהג במספר דרכים. כריכה מוקדמת וכריכה מאוחרת הם שני מושגים בפולימורפיזם. שיטות עומס יתר מלוכדות באמצעות כריכה מוקדמת. שיטות שנדרוס נקשרות באמצעות כריכה מאוחרת.
מה זה כריכה מוקדמת?
ב-Early Binding, המידע המחלקה משמש לפתרון קריאת מתודה. כריכה מוקדמת מתרחשת בזמן ההידור. זה ידוע גם בשם הכריכה הסטטית. בתהליך זה, הקישור מתרחש לפני שהתוכנית פועלת בפועל. שיטות עומס יתר מלוכדות באמצעות כריכה מוקדמת. עיין בתוכנית שלהלן.
איור 01: כיתת חישוב
איור 02: תוכנית ראשית לכריכה מוקדמת
לפי התוכנית לעיל, מחלקת החישוב מכילה שיטת add שמקבלת שני ערכים שלמים ושיטת add נוספת שמקבלת שני ערכים כפולים. בתוכנית הראשית נוצר אובייקט מסוג Calculation. כאשר מעבירים שני מספרים שלמים לשיטת התוספת, היא תפעיל את שיטת התוספת שמקבלת שני מספרים שלמים. כאשר מעבירים שני ערכים כפולים לשיטת add, היא תפעיל את השיטה המתאימה לשני ערכים כפולים. תהליך כריכה זה מתרחש בזמן הידור. כל המידע הנדרש ידוע לפני זמן הריצה, כך שהוא מגביר את יעילות התוכנית ומהירות הביצוע.
מה זה כריכה מאוחרת?
ב-Late Binding, האובייקט משמש לפתרון קריאת שיטה. כריכה מאוחרת מתרחשת בזמן ריצה. זה ידוע גם בשם כריכה דינמית. בתהליך זה, הקישור מתרחש בעת ביצוע התוכנית. שיטות מודפסות מלוכדות באמצעות כריכה מאוחרת. עיין בתוכנית שלהלן.
איור 03: Shape Class
איור 04: כיתת מעגל
איור 05: Class משולש
איור 06: תוכנית ראשית לכריכה מאוחרת
לפי התוכנית לעיל, לכיתה Shape יש שיטת ציור. Class Circle ו-class Triangle מחלקה מרחיבה את המחלקה Shape. לכן, שתי המחלקות הללו יכולות לרשת את התכונות והשיטות של המחלקה Shape. Shape Class היא מחלקת הבסיס. כיתות מעגל ומשולש הן כיתות נגזרות. למעגל הכיתה ולמשולש הכיתה יש גם את שיטת הציור עם יישום משלהם. אז, שיטת הציור במחלקה Shape מוחלף על ידי שיטות הציור של המחלקות הנגזרות.
בתוכנית הראשית נוצר משתנה התייחסות מסוג Shape. בזמן הקומפילציה, המהדר יפנה רק לשיטת ה-base class draw. בזמן ריצה, שיטות ציור שונות יבוצעו.ראשית, s יצביע על האובייקט מסוג Shape. אז, שיטת הציור של מחלקת Shape מופעלת. ואז ה-s יצביע על האובייקט מסוג Circle, והוא יפעיל את שיטת ה- draw של מחלקה Circle. לבסוף, s יצביע על האובייקט מסוג Triangle, והוא יפעיל את שיטת הציור במחלקה Triangle. השיטות נקראות בהתאם לאובייקטים. לכן, האובייקט משמש לפתרון קריאת מתודה ב-Late Binding. המידע הנדרש לכריכה מסופק בזמן הריצה, כך שמהירות הביצוע איטית יותר בהשוואה לכריכה מוקדמת.
מהו הדמיון בין כריכה מוקדמת לכריכה מאוחרת?
גם כריכה מוקדמת וגם כריכה מאוחרת קשורים לפולימורפיזם שהוא עמוד התווך של OOP
מה ההבדל בין כריכה מוקדמת לכריכה מאוחרת?
כריכה מוקדמת לעומת כריכה מאוחרת |
|
תהליך השימוש במידע המחלקה כדי לפתור קריאת מתודה המתרחשת בזמן הידור נקרא Early Binding. | תהליך השימוש באובייקט כדי לפתור קריאת מתודה המתרחשת בזמן ריצה נקרא Late Binding. |
זמן הכריכה | |
כריכה מוקדמת מתרחשת בזמן ההידור. | כריכה מאוחרת מתרחשת בזמן הריצה. |
פונקציונליות | |
Early Binding משתמש במידע המחלקה כדי לפתור קריאת שיטה. | Late Binding משתמש באובייקט כדי לפתור קריאת שיטה. |
מילים נרדפות | |
כריכה מוקדמת ידועה גם ככריכה סטטית.. | כריכה מאוחרת ידועה גם ככריכה דינמית. |
התרחשות | |
שיטות עומס יתר קשורות בכריכה מוקדמת. | השיטות שנדחקות קשורות בכריכה מאוחרת. |
מהירות ביצוע | |
מהירות הביצוע מהירה יותר בכריכה מוקדמת. | מהירות הביצוע נמוכה יותר בכריכה מאוחרת. |
סיכום – כריכה מוקדמת לעומת מאוחרת
OOP משמש בדרך כלל לפיתוח תוכנה. אחד העמודים העיקריים של OOP הוא פולימורפיזם. כריכה מוקדמת וכריכה מאוחרת קשורות לכך. כריכה מוקדמת מתרחשת בזמן הידור ואילו כריכה מאוחרת מתרחשת בזמן ריצה. בעומס יתר בשיטה, ההדבקה מתרחשת באמצעות הכריכה המוקדמת. בעקיפה של השיטה, ההתקשרות מתרחשת באמצעות הכריכה המאוחרת. ההבדל בין איגוד מוקדם למאוחר הוא ש-Early Binding משתמש במידע המחלקה כדי לפתור קריאת מתודה בעוד Late Binding משתמש באובייקט כדי לפתור קריאת מתודה.