Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Bắt đầu từ những thông tin cơ bản, sau đây là một định nghĩa không chính thức về Sổ đăng ký:
Nhưng:
Dù vậy, việc hiểu rõ lớp này để làm việc có thể sẽ giúp ích cho
với Tink một cách hiệu quả trong thời điểm hiện tại.
Điều gì xảy ra khi bạn gọi getPrimitive() trên một ô điều khiển tập hợp phím? Thẻ Google sẽ chuyển tiếp
lệnh gọi đến Sổ đăng ký1, nơi chứa các đối tượng có các phương pháp cụ thể để tạo
khoá và dữ liệu nguyên gốc, chẳng hạn như
khoá AesGcm hoặc một thực thể ChunkedMac. Nhiệm vụ của Cơ quan đăng ký là chuyển tiếp cuộc gọi
thành đúng đối tượng. Cách này chỉ hiệu quả nếu đối tượng đã được đăng ký, đó là lý do
bạn phải luôn đăng ký dữ liệu gốc sẽ sử dụng.
Nhưng nếu tôi sử dụng một thư viện đã đăng ký dữ liệu gốc mà tôi cần thì sao?
Đó chính là vấn đề. Và một trong những lý do khiến Sổ đăng ký bị xoá.
Bởi vì trong trường hợp này, mã của bạn chỉ hoạt động cho đến khi tác giả thư viện quyết định
không đăng ký dữ liệu gốc đó nữa. Tại thời điểm này, mã của bạn bị hỏng và
lý do không rõ ràng và khó hiểu. Vì vậy, hãy luôn đăng ký những gì bạn
. Ví dụ: nếu bạn có ý định sử dụng MAC trong mã Java của mình, bạn nên thực hiện
sau đây trong giai đoạn thiết lập:
MacConfig.register()
Mã này đảm bảo rằng tất cả đối tượng cần thiết đã được đăng ký trong
nơi cần thiết để bạn sử dụng MAC gốc.
Có một mặt khác của vấn đề này. Một số phần phụ thuộc của bạn có thể đăng ký
những thứ bạn thực sự không cần và không muốn phụ thuộc vào. Đây là
một lý do khác để xoá Sổ đăng ký toàn cầu.
chính xác là đến bản sao singleton toàn cầu của lớp Registry (Sổ đăng ký lớp). Chúng tôi sử dụng tên "Registry" (Sổ đăng ký) cho cả hai, lớp và singleton, thay thế cho nhau. ↩
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-07-25 UTC."],[[["\u003cp\u003eThe Registry in Tink is a global entity responsible for generating new keys and primitives, but it is intended for internal use only and is slated for removal.\u003c/p\u003e\n"],["\u003cp\u003eThe Registry forwards calls from \u003ccode\u003egetPrimitive()\u003c/code\u003e to objects that create keys and primitives, and these objects must be registered for the process to work.\u003c/p\u003e\n"],["\u003cp\u003eIt's essential to explicitly register the primitives you intend to use (e.g., \u003ccode\u003eMacConfig.register()\u003c/code\u003e), to ensure your code works consistently and doesn't rely on the unpredictable behavior of other libraries.\u003c/p\u003e\n"],["\u003cp\u003eRelying on other libraries to register primitives can lead to unexpected code breakage if the library's registration practices change, making it crucial to self-manage registrations.\u003c/p\u003e\n"]]],["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"],null,[]]