קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
נתחיל ביסודות, הנה הגדרה לא רשמית של 'רישום':
אבל:
עם זאת, ייתכן שכדאי להבין את השיעור הזה כדי לעבוד
עם Tink באופן יעיל בינתיים.
מה קורה כשקוראים למספר getPrimitive() בנקודת אחיזה למערך מפתחות? היא מעבירה
קריאה ל-Registry1, שמכיל אובייקטים עם שיטות קונקרטיות ליצירת
ופרימיטיביים, כמו
מפתח AesGcm או מכונה של ChunkedMac. המשימה של המרשם היא להעביר את השיחה
לאובייקט הנכון. זה פועל רק אם האובייקט רשום, וזו הסיבה
חשוב תמיד לרשום את הפרמיטיביים שבהם אתם מתכוונים להשתמש.
אבל מה אם אני משתמש בספרייה שכבר רשמה את הפרמיטיביים הדרושים לי?
זו בדיוק הבעיה. ואחת הסיבות להסרת המרשם.
מפני שבמקרה זה הקוד שלך פועל רק עד שכותבי הספרייה יחליטו
לא לרשום את הפרמיטיבי הזה יותר. בשלב הזה הקוד מתקלקל,
לא ברורה ומבלבלת. לכן תמיד רושמים את מה
. לדוגמה, אם בכוונתך להשתמש ב-MAC בקוד Java, עליך לעשות זאת
הבאים בשלב ההגדרה:
MacConfig.register()
הקוד הזה מבטיח שכל האובייקטים הנחוצים רשומים
המקומות הנחוצים כדי להשתמש ברכיב ה-MAC.
יש עוד צד אחד לבעיה הזו. חלק מיחסי התלות שלך עשויים להירשם
בדברים שאתם באמת לא צריכים ומעדיפים לא להסתמך עליהם. הדבר
סיבה נוספת להסיר את המרשם הגלובלי.
למופע הגלובלי של סינגלטון במרשם המחלקות, ליתר דיוק. אנחנו משתמשים בשם "Registry" לשניהם, לכיתה ולסינגלטון, באותו זמן.↩
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-25 (שעון UTC)."],[],["The Registry is a global entity in Tink for generating keys and primitives, but it's slated for removal and should not be directly accessed. `getPrimitive()` calls are forwarded to the Registry, which then creates the correct object, if registered. It is crucial to register the primitives one intends to use directly, using method like `MacConfig.register()`, because relying on library registration leads to code fragility and unwanted dependencies. The class is considered for removal.\n"]]