เริ่มต้นจากข้อมูลพื้นฐานต่อไปนี้ คือคำจำกัดความที่ไม่เป็นทางการของรีจิสทรี
แต่:
อย่างไรก็ตาม การทำความเข้าใจชั้นเรียนนี้อาจเป็นประโยชน์ในการทำงาน ด้วย Tink อย่างมีประสิทธิภาพในช่วงเวลานั้น
จะเกิดอะไรขึ้นเมื่อคุณเรียกใช้ getPrimitive()
ด้วยแฮนเดิลชุดคีย์ ส่งต่อ
การเรียกไปยังรีจิสทรี1 ซึ่งมีออบเจ็กต์ที่มีวิธีสร้างอย่างเป็นรูปธรรม
คีย์และคำพื้นฐาน เช่น
คีย์ AesGcm หรืออินสแตนซ์ ChunkedMac งานของรีจิสทรีคือโอนสาย
กับออบเจ็กต์ที่ถูกต้อง การดำเนินการนี้จะทำงานได้ต่อเมื่อออบเจ็กต์ได้รับการลงทะเบียนแล้วเท่านั้น ซึ่งเป็นเหตุผล
คุณต้องลงทะเบียนตัวแปรพื้นฐานที่คุณจะใช้เสมอ
แต่จะเกิดอะไรขึ้นหากฉันใช้ไลบรารีที่ได้ลงทะเบียนประเภทพื้นฐานที่ฉันต้องการแล้ว
ซึ่งนั่นคือปัญหาจริงๆ และหนึ่งในเหตุผลที่รีจิสทรีถูกนำออก ในกรณีนี้ โค้ดของคุณจะทำงานจนกว่าผู้เขียนห้องสมุดจะตัดสินใจ ไม่ต้องลงทะเบียนพื้นฐานนั้นอีกต่อไป ถึงจุดนี้โค้ดของคุณเสียหาย และ เหตุผลนั้นไม่ชัดเจนและน่าสับสน ดังนั้น โปรดลงทะเบียนสิ่งที่คุณ การใช้งาน ตัวอย่างเช่น หากคุณตั้งใจจะใช้ MAC ในโค้ด Java คุณควรทำ ในขั้นตอนการตั้งค่ามีดังนี้
MacConfig.register()
โค้ดนี้จะช่วยให้มั่นใจว่ามีการลงทะเบียนออบเจ็กต์ที่จำเป็นทั้งหมดใน ที่จำเป็นต้องใช้ MAC แบบเดิม
ปัญหานี้มีอีกด้านหนึ่ง ระบบอาจลงทะเบียนทรัพยากร Dependency บางอย่าง สิ่งที่คุณไม่จำเป็นจริงๆ และต้องการที่จะไม่พึ่งพา นี่คือ อีกเหตุผลหนึ่งในการนำรีจิสทรีส่วนกลางออก
-
กับอินสแตนซ์แบบ Singleton ระดับโลกของคลาส Registry ให้ชัดเจน เราใช้ชื่อว่า "Registry" สำหรับทั้งคลาสและซิงเกิลตัน↩