{"id":4442,"date":"2025-09-11T11:14:36","date_gmt":"2025-09-11T03:14:36","guid":{"rendered":"https:\/\/www.caiqinyi.cn\/?p=4442"},"modified":"2025-09-11T11:14:36","modified_gmt":"2025-09-11T03:14:36","slug":"ue5_design_pattern_memento_pattern","status":"publish","type":"post","link":"https:\/\/www.caiqinyi.cn\/index.php\/2025\/09\/11\/ue5_design_pattern_memento_pattern\/","title":{"rendered":"[UE5 \u8bbe\u8ba1\u6a21\u5f0f] \u5907\u5fd8\u5f55\u6a21\u5f0fMemento Pattern"},"content":{"rendered":"<p><script type=\"text\/javascript\" async src=\"https:\/\/www.caiqinyi.cn\/wp-content\/MathJax\/MathJax.js?config=TeX-AMS_CHTML\">\n<\/script><br \/>\n<script type=\"text\/x-mathjax-config\">\n    MathJax.Hub.Config({\n        tex2jax: {inlineMath: [['$','$']]},\n        TeX: {equationNumbers: {autoNumber: [\"AMS\"], useLabelIds: true}},\n        \"HTML-CSS\": {linebreaks: {automatic: true}},\n        SVG: {linebreaks: {automatic: true}}\n    });\n<\/script><\/p>\n<p><strong>\u53c2\u8003\u6750\u6599<\/strong><br \/>\n1. <a href=\"https:\/\/www.cnblogs.com\/shiroe\/p\/14909707.html\">\u3010UE4 \u8bbe\u8ba1\u6a21\u5f0f\u3011\u7b56\u7565\u6a21\u5f0f Strategy Pattern<\/a><br \/>\n2. <a href=\"https:\/\/www.runoob.com\/design-pattern\/memento-pattern.html\">\u5907\u5fd8\u5f55\u6a21\u5f0f<\/a><br \/>\n3. <a href=\"https:\/\/cloud.tencent.com\/developer\/article\/2328516\">\u770b\u5b8c\uff0c\u4f60\u4e5f\u80fd\u7528\u5907\u5fd8\u5f55\u6a21\u5f0f\u624b\u5199\u4e00\u4e2a\u6e38\u620f\u7684\u5b58\u6863\u529f\u80fd\uff01<\/a><br \/>\n4. <a href=\"https:\/\/www.51cto.com\/article\/768704.html\">\u3010\u8bbe\u8ba1\u6a21\u5f0f\u3011\u901a\u8fc7\u6e38\u620f\u5b58\u6863\u4e86\u89e3\u5907\u5fd8\u5f55\u6a21\u5f0f<\/a><\/p>\n<p><strong>1. \u6982\u8ff0<\/strong><\/p>\n<p><strong>1.1 \u63cf\u8ff0<\/strong><\/p>\n<p>$\\cdot$ \u5907\u5fd8\u5f55\u6a21\u5f0f(Memento Pattern) \u4fdd\u5b58\u4e00\u4e2a\u5bf9\u8c61\u7684\u67d0\u4e2a\u72b6\u6001, \u4ee5\u4fbf\u5728\u9002\u5f53\u7684\u65f6\u5019\u6062\u590d\u5bf9\u8c61, \u5907\u5fd8\u5f55\u6a21\u5f0f\u5c5e\u4e8e\u884c\u4e3a\u578b\u6a21\u5f0f.<br \/>\n$\\\\$ \u5907\u5fd8\u5f55\u6a21\u5f0f\u5141\u8bb8\u5728\u4e0d\u7834\u574f\u5c01\u88c5\u6027\u7684\u524d\u63d0\u4e0b, \u6355\u83b7\u548c\u6062\u590d\u5bf9\u8c61\u7684\u5185\u90e8\u72b6\u6001.<\/p>\n<p><!--more--><\/p>\n<p><strong>1.2 \u5957\u8def<\/strong><\/p>\n<p>$\\cdot$ <strong>\u5b9e\u73b0\u65b9\u5f0f:<\/strong><br \/>\n$\\\\$ 1) \u521b\u5efa\u5907\u5fd8\u5f55\u7c7b: \u7528\u4e8e\u5b58\u50a8\u548c\u5c01\u88c5\u5bf9\u8c61\u7684\u72b6\u6001.<br \/>\n$\\\\$ 2) \u521b\u5efa\u53d1\u8d77\u4eba\u89d2\u8272: \u8d1f\u8d23\u521b\u5efa\u5907\u5fd8\u5f55, \u5e76\u6839\u636e\u9700\u8981\u6062\u590d\u72b6\u6001.<br \/>\n$\\\\$ 3) \u521b\u5efa\u5907\u5fd8\u5f55\u7ba1\u7406\u7c7b(\u53ef\u9009): \u8d1f\u8d23\u7ba1\u7406\u6240\u6709\u5907\u5fd8\u5f55\u5bf9\u8c61.<\/p>\n<p>$\\cdot$ <strong>\u5173\u952e\u4ee3\u7801:<\/strong><br \/>\n$\\\\$ 1) \u5907\u5fd8\u5f55: \u5b58\u50a8\u53d1\u8d77\u4eba\u7684\u72b6\u6001\u4fe1\u606f.<br \/>\n$\\\\$ 2) \u53d1\u8d77\u4eba: \u521b\u5efa\u5907\u5fd8\u5f55, \u5e76\u6839\u636e\u5907\u5fd8\u5f55\u6062\u590d\u72b6\u6001.<\/p>\n<p>$\\cdot$ <strong>\u7ed3\u6784:<\/strong><br \/>\n$\\\\$ \u5907\u5fd8\u5f55\u6a21\u5f0f\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u4e3b\u8981\u89d2\u8272:<br \/>\n$\\\\$ 1) \u5907\u5fd8\u5f55(Memento): \u8d1f\u8d23\u5b58\u50a8\u539f\u53d1\u5668\u5bf9\u8c61\u7684\u5185\u90e8\u72b6\u6001. \u5907\u5fd8\u5f55\u53ef\u4ee5\u4fdd\u6301\u539f\u53d1\u5668\u7684\u72b6\u6001\u7684\u4e00\u90e8\u5206\u6216\u5168\u90e8\u4fe1\u606f.<br \/>\n$\\\\$ 2) \u539f\u53d1\u5668(Originator): \u521b\u5efa\u4e00\u4e2a\u5907\u5fd8\u5f55\u5bf9\u8c61, \u5e76\u4e14\u53ef\u4ee5\u4f7f\u7528\u5907\u5fd8\u5f55\u5bf9\u8c61\u6062\u590d\u81ea\u8eab\u7684\u5185\u90e8\u72b6\u6001. \u539f\u53d1\u5668\u901a\u5e38\u4f1a\u5728\u9700\u8981\u4fdd\u5b58\u72b6\u6001\u7684\u65f6\u5019\u521b\u5efa\u5907\u5fd8\u5f55\u5bf9\u8c61, \u5e76\u5728\u9700\u8981\u6062\u590d\u72b6\u6001\u7684\u65f6\u5019\u4f7f\u7528\u5907\u5fd8\u5f55\u5bf9\u8c61.<br \/>\n$\\\\$ 3) \u8d1f\u8d23\u4eba(Caretaker): \u8d1f\u8d23\u4fdd\u5b58\u5907\u5fd8\u5f55\u5bf9\u8c61, \u4f46\u662f\u4e0d\u5bf9\u5907\u5fd8\u5f55\u5bf9\u8c61\u8fdb\u884c\u64cd\u4f5c\u6216\u68c0\u67e5. \u8d1f\u8d23\u4eba\u53ea\u80fd\u5c06\u5907\u5fd8\u5f55\u4f20\u9012\u7ed9\u5176\u4ed6\u5bf9\u8c61.<\/p>\n<p><strong>1.3 \u4f7f\u7528\u573a\u666f<\/strong><\/p>\n<p>$\\cdot$ \u5f53\u9700\u8981\u63d0\u4f9b\u4e00\u79cd\u64a4\u9500\u673a\u5236, \u5141\u8bb8\u7528\u6237\u56de\u9000\u5230\u4e4b\u524d\u7684\u72b6\u6001\u65f6.<\/p>\n<p><strong>1.4 \u4f18\u7f3a\u70b9<\/strong><\/p>\n<p>$\\cdot$ <strong>\u4f18\u70b9:<\/strong><br \/>\n$\\\\$ 1) \u63d0\u4f9b\u72b6\u6001\u6062\u590d\u673a\u5236: \u5141\u8bb8\u7528\u6237\u65b9\u4fbf\u5730\u56de\u5230\u5386\u53f2\u72b6\u6001.<br \/>\n$\\\\$ 2) \u5c01\u88c5\u72b6\u6001\u4fe1\u606f: \u7528\u6237\u4e0d\u9700\u8981\u5173\u5fc3\u72b6\u6001\u7684\u4fdd\u5b58\u7ec6\u8282.<\/p>\n<p>$\\cdot$ <strong>\u7f3a\u70b9:<\/strong><br \/>\n$\\\\$ 1) \u8d44\u6e90\u6d88\u8017: \u5982\u679c\u5bf9\u8c61\u7684\u72b6\u6001\u590d\u6742, \u4fdd\u5b58\u72b6\u6001\u53ef\u80fd\u4f1a\u5360\u7528\u8f83\u591a\u8d44\u6e90.<\/p>\n<p><strong>2. UE5\u5b9e\u8df5<\/strong><\/p>\n<p>\u6e38\u620f\u4e2d\u7684\u5b58\u6863\u529f\u80fd\u5c31\u662f\u5907\u5fd8\u5f55\u6a21\u5f0f. \u6211\u4eec\u5728\u73a9\u6e38\u620f\u65f6, \u5230\u4e00\u5b9a\u7684\u8fdb\u5ea6\u65f6, \u6211\u4eec\u89c9\u5f97\u5f53\u524d\u7684\u72b6\u6001\u5c31\u662f\u6700\u6709\u5229\u7684, \u56e0\u6b64\u6211\u4eec\u4f1a\u8c03\u7528\u5b58\u6863\u7684\u529f\u80fd, \u628a\u5f53\u524d\u7684\u72b6\u6001\u5b58\u50a8\u5230\u67d0\u4e2a\u5730\u65b9\u6216\u8005\u67d0\u4e2a\u6587\u4ef6\u4e2d. \u5f53\u6211\u4eec\u540e\u7eed\u7684\u67d0\u4e2a\u64cd\u4f5c\u51fa\u73b0\u95ee\u9898\u65f6, \u518d\u8bfb\u53d6\u5b58\u6863\u5c31\u80fd\u56de\u5230\u6211\u4eec\u521a\u624d\u4fdd\u5b58\u7684\u8fdb\u5ea6.<\/p>\n<p><strong>2.1 \u793a\u4f8b\u89e3\u6790<\/strong><\/p>\n<p>\u5c31\u521a\u624d\u7684\u4f8b\u5b50. \u6211\u4eec\u628a\u6574\u4e2a\u6e38\u620f\u770b\u505a\u4e00\u4e2a\u5bf9\u8c61: FGame. \u5728\u8fd9\u4e2a\u6e38\u620f\u4e2d, \u6211\u4eec\u7684\u8fdb\u5ea6, \u5c31\u662f\u63cf\u8ff0\u7684\u5f53\u524d\u6e38\u620f\u7684\u72b6\u6001, \u6bd4\u5982\u6211\u4eec\u8d5a\u53d6\u7684\u91d1\u5e03\u6570\u91cf. \u56e0\u6b64, \u5728Game\u4e2d\u59cb\u7ec8\u6709\u4e00\u4e2a\u91d1\u5e01\u6570\u91cf\u7684\u72b6\u6001: Money.<br \/>\n$\\\\$ \u73b0\u5728, \u6211\u4eec\u60f3\u8981\u628a\u8fd9\u4e2a\u91d1\u5e01\u7684\u6570\u91cf\u8fdb\u884c\u5b58\u6863. \u5728\u6e38\u620f\u4e2d, \u662f\u4e0d\u662f\u7ecf\u5e38\u6709\u4e00\u4e2a\u5b58\u6863\u7684\u529f\u80fd? \u8fd9\u5c31\u5bf9\u5e94\u7740: FGame\u4e2d\u6709\u4e00\u4e2a\u5b58\u6863\u7684\u529f\u80fd\u65b9\u6cd5. \u540c\u6837, \u6211\u4eec\u8fdb\u884c\u8bfb\u6863\u7684\u65f6\u5019,\u5bf9\u5e94\u7740\u7684\u5c31\u662fFGame \u4e2d\u8bfb\u6863\u7684\u529f\u80fd\u65b9\u6cd5.<br \/>\n$\\\\$ \u5b58\u6863\u6216\u8bfb\u6863\u7684\u6570\u636e\u4e5f\u662f\u6e38\u620f\u7684\u4e00\u79cd\u72b6\u6001. \u6211\u4eec\u4e0d\u4f1a\u628a\u8fd9\u4e2a\u5b58\u6863\u7684\u72b6\u6001\u548cFGame\u4e2d\u73b0\u6709\u7684\u72b6\u6001\u6df7\u5728\u4e00\u8d77. \u56e0\u4e3a\u5728\u8bfb\u6863\u7684\u65f6\u5019, \u5b58\u6863\u4e2d\u7684\u72b6\u6001\u4f1a\u8986\u76d6FGame\u4e2d\u539f\u6709\u7684\u72b6\u6001. \u56e0\u6b64, \u6211\u4eec\u9700\u8981\u4e00\u4e2a\u72ec\u7acb\u7684\u5bf9\u8c61\u6765\u8868\u793a\u8fd9\u4e2a\u5b58\u6863\u72b6\u6001(\u4e3a\u4ec0\u4e48\u7528\u5bf9\u8c61\u5462? \u56e0\u4e3a\u6211\u4eec\u7684\u72b6\u6001\u53ef\u80fd\u4e0d\u6b62\u91d1\u5e01, \u53ef\u80fd\u8fd8\u6709\u88c5\u5907, \u6216\u8005\u5176\u4ed6\u7684): FMemento.<br \/>\n$\\\\$ \u76ee\u524d, \u6211\u4eec\u5df2\u7ecf\u63d0\u5230\u4e86\u5907\u5fd8\u5f55\u4e2d\u7684\u4e24\u4e2a\u89d2\u8272\u4e86: \u53d1\u8d77\u8005\u89d2\u8272(FGame) \u548c\u5907\u5fd8\u5f55\u89d2\u8272(FMemento).<br \/>\n$\\\\$ \u6ce8\u610f, \u8fd9\u91cc\u8fd8\u6709\u4e00\u4e2a\u89d2\u8272: \u5907\u5fd8\u5f55\u7ba1\u7406\u8005\u89d2\u8272. \u5b83\u7528\u6765\u7ba1\u7406\u5907\u5fd8\u5f55, \u4ec5\u63d0\u4f9b\u5907\u5fd8\u5f55\u7684\u5b58\u50a8\u548c\u83b7\u53d6. \u4e3a\u4ec0\u4e48\u5462? \u56e0\u4e3a\u4f60\u7684\u5907\u5fd8\u5f55\u53ef\u80fd\u4e0d\u6b62\u4e00\u4e2a, \u5c31\u50cf\u4f60\u7684\u5b58\u6863\u4e0d\u6b62\u4e00\u4e2a\u4e00\u6837.<br \/>\n$\\\\$ OK, \u8ba9\u6211\u4eec\u7b80\u5355\u7684\u5b9e\u73b0\u4e0b\u8fd9\u4e2a\u4f8b\u5b50.<\/p>\n<p><strong>2.2 \u793a\u4f8b\u4ee3\u7801<\/strong><\/p>\n<p>\u9996\u5148\u662f\u53d1\u8d77\u8005\u89d2\u8272: FGame\u7c7b, \u5305\u542b\u5b58\u6863\u548c\u8bfb\u6863\u7684\u65b9\u6cd5: CreateMemento\u548cRestoreMemento.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"C++\" data-enlighter-theme=\"monokai\">\r\n\r\n#pragma once\r\n#include \"Memento.h\"\r\n\r\n\r\nclass FGame\r\n{\r\npublic:\r\n\tFGame()\r\n\t{\r\n\t}\r\n\r\n\tFGame(int32 InMoney) : Money(InMoney)\r\n\t{\r\n\t}\r\n\r\n\tFORCEINLINE void SetMoney(int32 InMoney)\r\n\t{\r\n\t\tMoney = InMoney;\r\n\t}\r\n\r\n\tFORCEINLINE int32 GetMoney() const\r\n\t{\r\n\t\treturn Money;\r\n\t}\r\n\r\n\tFMemento* CreateMemento()\r\n\t{\r\n\t\tFMemento* Memento = new FMemento(Money);\r\n\t\treturn Memento;\r\n\t}\r\n\r\n\tvoid RestoreMemento(FMemento* Memento)\r\n\t{\r\n\t\tif (Memento != nullptr)\r\n\t\t{\r\n\t\t\tMoney = Memento->GetMoney();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tUE_LOG(LogTemp, Warning, TEXT(\"\u8bfb\u6863\u5931\u8d25!\"));\r\n\t}\r\n\r\n\tFString ToString() const\r\n\t{\r\n\t\treturn FString::Printf(TEXT(\"Money: %d\"), Money);\r\n\t}\r\n\r\nprivate:\r\n\tint32 Money;\r\n};\r\n\r\n<\/pre>\n<p>\u5728\u5b58\u53d6\u6863\u4e2d, \u7528\u5230\u4e86\u5907\u5fd8\u5f55\u5bf9\u8c61: FMemento.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"C++\" data-enlighter-theme=\"monokai\">\r\n\r\n#pragma once\r\n#include \"CoreMinimal.h\"\r\n\r\n\r\nclass FMemento\r\n{\r\n\tFMemento(int32 InMoney) : Money(InMoney)\r\n\t{\r\n\t}\r\n\r\npublic:\r\n\tFORCEINLINE int32 GetMoney() const\r\n\t{\r\n\t\treturn Money;\r\n\t}\r\n\r\nprivate:\r\n\tint32 Money;\r\n};\r\n\r\n<\/pre>\n<p>\u8fd8\u6709\u4e00\u4e2a\u7c7b\u5c31\u662f\u5907\u5fd8\u5f55\u7ba1\u7406\u8005\u7c7b: FMementoManager.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"C++\" data-enlighter-theme=\"monokai\">\r\n\r\n#pragma once\r\n#include \"Memento.h\"\r\n\r\n\r\nclass FMementoManager\r\n{\r\npublic:\r\n\tvoid Add(FMemento* Memento)\r\n\t{\r\n\t\tMementoList.Emplace(Memento);\r\n\t}\r\n\r\n\tFMemento* Get(int32 Index)\r\n\t{\r\n\t\tif (MementoList.IsValidIndex(Index))\r\n\t\t{\r\n\t\t\treturn MementoList[Index];\r\n\t\t}\r\n\r\n\t\treturn nullptr;\r\n\t}\r\n\r\n\tvoid Clear()\r\n\t{\r\n\t\tfor (auto& Memento : MementoList)\r\n\t\t{\r\n\t\t\tdelete Memento;\r\n\t\t\tMemento = nullptr;\r\n\t\t}\r\n\r\n\t\tMementoList.Clear();\r\n\t}\r\n\r\nprivate:\r\n\tTArray<FMemento*> MementoList;\r\n};\r\n\r\n<\/pre>\n<p>\u8ba9\u6211\u4eec\u6765\u6d4b\u8bd5\u4e00\u628a.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"C++\" data-enlighter-theme=\"monokai\">\r\n\r\n#include \"Game.h\"\r\n#include \"MementoManager.h\"\r\n\r\n\r\nint main()\r\n{\r\n\tFGame* Game = new FGame();\r\n\tFMementoManager* MementoManager = new FMementoManager();\r\n\r\n\tGame->SetMoney(100);\r\n\tUE_LOG(LogTemp, Log, TEXT(\"\u5f53\u524d\u7684\u91d1\u5e01\u662f: %d\"), Game->GetMoney());\r\n\tMementoManager->Add(Game->CreateMemento());\r\n\r\n\t\/\/ \u4e0d\u5c0f\u5fc3\u91d1\u5e01\u635f\u5931\u5230\u53ea\u670910\u4e86!\r\n\tGame->SetMoney(10);\r\n\tUE_LOG(LogTemp, Log, TEXT(\"\u5f53\u524d\u7684\u91d1\u5e01\u662f: %d\"), Game->GetMoney());\r\n\r\n\t\/\/ \u4eceMementoManager\u53d6\u51fa\u7b2c\u4e00\u4e2aMemento\u5bf9\u8c61, \u5e76\u7ed9Game\u8d4b\u503c\u56de\u53bb.(\u7b80\u79f0: \u8bfb\u6863)\r\n\tGame->RestoreMemento(MementoManager->Get(0));\r\n\tUE_LOG(LogTemp, Log, TEXT(\"\u6267\u884c\u8bfb\u6863\u540e, \u5f53\u524d\u7684\u91d1\u5e01\u662f: %d\"), Game->GetMoney());\r\n\r\n\tdelete Game;\r\n\tGame = nullptr;\r\n\r\n\tMementoManager->Clear();\r\n\tdelete MementoManager;\r\n\tMementoManager = nullptr;\r\n\r\n\treturn 0;\r\n}\r\n\r\n<\/pre>\n<p>\u9884\u671f\u7ed3\u679c: \u5f53\u524d\u7684\u91d1\u5e01\u662f: 100, \u5f53\u524d\u7684\u91d1\u5e01\u662f: 10. \u6267\u884c\u8bfb\u6863\u540e, \u5f53\u524d\u7684\u91d1\u5e01\u662f: 100.<br \/>\n$\\\\$ \u6211\u4eec\u7684\u91d1\u5e01\u6570\u91cf, \u901a\u8fc7\u8bfb\u6863\u540e, \u53c8\u56de\u5230\u4e86\u8d77\u521d\u7684100.<br \/>\n$\\\\$ \u8fd9\u5c31\u662f\u5907\u5fd8\u5f55\u7684\u4f7f\u7528.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u53c2\u8003\u6750\u6599 1. \u3010UE4 \u8bbe\u8ba1\u6a21\u5f0f\u3011\u7b56\u7565\u6a21\u5f0f Strategy Pattern 2. \u5907\u5fd8\u5f55\u6a21\u5f0f 3. \u770b\u5b8c\uff0c &hellip; <a href=\"https:\/\/www.caiqinyi.cn\/index.php\/2025\/09\/11\/ue5_design_pattern_memento_pattern\/\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">[UE5 \u8bbe\u8ba1\u6a21\u5f0f] \u5907\u5fd8\u5f55\u6a21\u5f0fMemento Pattern<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,32],"tags":[],"_links":{"self":[{"href":"https:\/\/www.caiqinyi.cn\/index.php\/wp-json\/wp\/v2\/posts\/4442"}],"collection":[{"href":"https:\/\/www.caiqinyi.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.caiqinyi.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.caiqinyi.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.caiqinyi.cn\/index.php\/wp-json\/wp\/v2\/comments?post=4442"}],"version-history":[{"count":7,"href":"https:\/\/www.caiqinyi.cn\/index.php\/wp-json\/wp\/v2\/posts\/4442\/revisions"}],"predecessor-version":[{"id":4449,"href":"https:\/\/www.caiqinyi.cn\/index.php\/wp-json\/wp\/v2\/posts\/4442\/revisions\/4449"}],"wp:attachment":[{"href":"https:\/\/www.caiqinyi.cn\/index.php\/wp-json\/wp\/v2\/media?parent=4442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.caiqinyi.cn\/index.php\/wp-json\/wp\/v2\/categories?post=4442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.caiqinyi.cn\/index.php\/wp-json\/wp\/v2\/tags?post=4442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}