{"id":1418,"date":"2026-02-25T10:40:59","date_gmt":"2026-02-25T10:40:59","guid":{"rendered":"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/"},"modified":"2026-02-25T10:40:59","modified_gmt":"2026-02-25T10:40:59","slug":"uml-design-patterns-in-practice","status":"publish","type":"docs","link":"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/","title":{"rendered":"Design Patterns Expressed in UML"},"content":{"rendered":"<p>Most developers learn design patterns as abstract concepts in textbooks. The real leap comes when you stop memorizing them and start *recognizing* their structure in code and diagrams. That moment\u2014when a class diagram suddenly reveals a Singleton or a sequence diagram shows a Strategy pattern in motion\u2014marks the shift from rote learning to true design fluency.<\/p>\n<p>That recognition is built on one key insight: patterns aren\u2019t just abstract blueprints. They are *visualizable*, and UML is the most powerful tool to make them tangible. This chapter shows how to represent GoF patterns UML using class and sequence diagrams\u2014not to over-document, but to improve communication, detect flaws early, and ensure consistency across teams.<\/p>\n<p>By the end of this section, you\u2019ll be able to sketch, critique, and refine design patterns using UML as a shared language\u2014exactly as professionals do in large-scale systems.<\/p>\n<h2>Why UML Makes Design Patterns Practical<\/h2>\n<p>Patterns exist to solve recurring problems. But without a shared visual language, translating \u201cthis class should be instantiated once\u201d into a working system often leads to inconsistent implementations.<\/p>\n<p>UML closes that gap. A well-drawn class diagram can instantly show whether a pattern is applied correctly\u2014no code needed. A sequence diagram reveals how objects collaborate under different conditions, exposing hidden coupling or timing flaws.<\/p>\n<p>Consider the Observer pattern. In code, it might be buried in event handlers. But in a UML sequence diagram, the flow of notifications becomes obvious. You can see if the subject correctly maintains a list of observers and whether they&#8217;re notified in the correct order.<\/p>\n<h3>UML as a Communication Layer<\/h3>\n<p>Teams often debate whether a class is a Factory, a Builder, or a Prototype. A simple UML class diagram with the right stereotypes and relationships resolves the debate in seconds.<\/p>\n<p>Stakeholders like product owners and junior developers benefit from seeing the pattern\u2019s structure. A single sequence diagram can illustrate a complex workflow like a payment gatekeeper handling retries, timeouts, and fallbacks\u2014something that would take paragraphs to explain in text.<\/p>\n<p>Visual clarity leads to fewer misunderstandings, faster onboarding, and stronger alignment between architects and implementers.<\/p>\n<h2>Mapping GoF Patterns to UML<\/h2>\n<p>There are 23 classic GoF patterns. Each has a distinct structure and purpose. UML provides a consistent way to model all of them\u2014making them reusable across domains.<\/p>\n<p>Here\u2019s how a few key patterns appear in UML.<\/p>\n<h3>Singleton: A Single Instance, Clearly Modeled<\/h3>\n<p>Singleton ensures a class has only one instance. In UML, this is shown by:<\/p>\n<ul>\n<li>A single instance of the class with a <code>static<\/code> attribute.<\/li>\n<li>Private constructor (shown as \u201c\u2014\u201d in UML).<\/li>\n<li>A public static method, typically named <code>getInstance()<\/code>, returning the single instance.<\/li>\n<\/ul>\n<p>The class diagram explicitly enforces the constraint. You can\u2019t accidentally create multiple instances without breaking the model.<\/p>\n<h3>Factory Method: Delegating Construction<\/h3>\n<p>The Factory Method pattern lets subclasses decide which class to instantiate. In UML:<\/p>\n<ul>\n<li>A base class declares an abstract method <code>createProduct()<\/code>.<\/li>\n<li>Concrete subclasses override it to return their own product type.<\/li>\n<li>Relationships show inheritance (a solid line with a hollow arrow).<\/li>\n<\/ul>\n<p>This makes it easy to see that the actual instantiation happens at runtime, based on the subclass. It\u2019s not magic\u2014it\u2019s clear, structured, and testable.<\/p>\n<h3>Strategy: Encapsulating Behavior<\/h3>\n<p>Strategy lets you switch algorithms at runtime. In UML:<\/p>\n<ul>\n<li>A context class holds a reference to a <code>Strategy<\/code> interface.<\/li>\n<li>Concrete strategy classes implement the interface.<\/li>\n<li>Dependency is shown as a dashed arrow from context to interface.<\/li>\n<\/ul>\n<p>This structure makes it obvious how algorithms are decoupled. You can swap strategies without changing the context, improving maintainability.<\/p>\n<h2>Visualizing Behavior with Sequence Diagrams<\/h2>\n<p>Class diagrams show structure. Sequence diagrams show behavior. Together, they form a complete picture of how a pattern works in practice.<\/p>\n<p>For example, the Command pattern is all about encapsulating requests as objects. A sequence diagram illustrates the flow:<\/p>\n<ol>\n<li>The client creates a <code>Command<\/code> object and assigns it a receiver.<\/li>\n<li>The <code>Command<\/code> is passed to an invoker (e.g., a button or timer).<\/li>\n<li>The invoker calls <code>execute()<\/code> on the command.<\/li>\n<li>The command invokes the receiver\u2019s method.<\/li>\n<\/ol>\n<p>This sequence is clear, repeatable, and easy to verify against the class model.<\/p>\n<p>It also reveals hidden risks\u2014like what happens if <code>execute()<\/code> fails and isn\u2019t rolled back. That\u2019s where state diagrams can help, but the sequence diagram is the first line of clarity.<\/p>\n<h3>Trade-offs in Modeling Patterns<\/h3>\n<p>Not every pattern needs a full UML sequence diagram. The key is *contextual relevance*.<\/p>\n<p>For a simple Singleton, a class diagram is often enough. For a complex pattern like State or Template Method, a sequence diagram is essential to show how state transitions or method overrides affect behavior.<\/p>\n<p>Don\u2019t model for the sake of completeness. Model to clarify the *decision* the pattern enables.<\/p>\n<h2>Common Mistakes and How to Fix Them<\/h2>\n<p>Even experienced modelers make errors when applying patterns. Here are the most frequent issues\u2014and how to avoid them.<\/p>\n<h3>Over-Modeling: The \u201cToo Many Arrows\u201d Problem<\/h3>\n<p>Some teams add every possible relationship: inheritance, dependency, association, aggregation. This creates visual noise.<\/p>\n<p>Fix: Focus only on relationships that affect the pattern\u2019s behavior. For Strategy, the key is the dependency from context to interface\u2014not every related class.<\/p>\n<h3>Ignoring Stereotypes<\/h3>\n<p>Without stereotypes like \u00abinterface\u00bb, \u00ababstract\u00bb, or \u00abfactory\u00bb, the diagram loses its semantic meaning.<\/p>\n<p>Fix: Use stereotypes consistently. They\u2019re not decorative\u2014they signal intent to the reader.<\/p>\n<h3>Modeling the Wrong Level of Abstraction<\/h3>\n<p>Some modelers show every method in a class, even when it\u2019s irrelevant to the pattern.<\/p>\n<p>Fix: Strip away implementation details. Show only the core elements: the pattern\u2019s participants, their roles, and key operations.<\/p>\n<h3>Pattern Misapplication<\/h3>\n<p>Applying a pattern where it doesn\u2019t belong wastes effort and increases complexity.<\/p>\n<p>Fix: Ask: \u201cDoes this pattern solve a real problem in this context?\u201d If not, reconsider. The Singleton, for instance, is often misused in multi-threaded environments. UML can help spot that risk by showing how the instance is created and accessed.<\/p>\n<h2>Best Practices for Modeling Design Patterns<\/h2>\n<p>Here\u2019s a checklist to guide your modeling:<\/p>\n<ul>\n<li><strong>Start with intent<\/strong>: What problem does the pattern solve here?<\/li>\n<li><strong>Use standard notation<\/strong>: Follow UML conventions for classes, interfaces, relationships.<\/li>\n<li><strong>Keep diagrams focused<\/strong>: Show only what\u2019s necessary for understanding the pattern.<\/li>\n<li><strong>Use stereotypes and notes<\/strong>: Clarify roles and constraints.<\/li>\n<li><strong>Validate with peers<\/strong>: Have someone unfamiliar with the pattern review the diagram.<\/li>\n<li><strong>Link to code<\/strong>: Use traceability to show how the model maps to actual implementation.<\/li>\n<\/ul>\n<p>These aren\u2019t strict rules. They\u2019re guardrails to ensure your models serve their purpose: to communicate, verify, and evolve design.<\/p>\n<h2>Frequently Asked Questions<\/h2>\n<h3>Can I use UML design patterns in any programming language?<\/h3>\n<p>Yes. UML is language-agnostic. The structure of a Factory Method or Observer pattern is the same whether you&#8217;re using Java, Python, or C++. The implementation details differ, but the model remains consistent.<\/p>\n<h3>Should I model every GoF pattern in my project?<\/h3>\n<p>No. Apply patterns only when they solve a real problem. For example, use Singleton only when a single instance is truly required. Never force a pattern into your system just because it\u2019s popular.<\/p>\n<h3>How do I know which UML diagram to use for a pattern?<\/h3>\n<p>Use class diagrams for structural patterns (Singleton, Factory, Adapter). Use sequence diagrams for behavioral patterns (Strategy, Observer, Command). Use state diagrams for patterns involving state transitions (State, Memento).<\/p>\n<h3>Do I need to draw every pattern by hand?<\/h3>\n<p>No. Tools like Visual Paradigm offer pattern templates, auto-layout, and code generation. Start with a template and refine it for your context.<\/p>\n<h3>How do I ensure my UML model stays in sync with code?<\/h3>\n<p>Use forward and reverse engineering. Model-first allows you to generate skeleton classes. Code-first lets you reverse-engineer a model from existing code. Keep both in sync through version control.<\/p>\n<h3>Is UML still relevant with modern tools like AI and code generation?<\/h3>\n<p>Yes. AI can generate code from natural language, but it can\u2019t replace the architectural intent that UML captures. Use UML to guide AI, not replace it. A diagram helps you understand *why* a system is built a certain way\u2014something code alone cannot convey.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Most developers lear [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1417,"menu_order":0,"template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"doc_tag":[],"class_list":["post-1418","docs","type-docs","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>UML Design Patterns in Practice<\/title>\n<meta name=\"description\" content=\"Learn how UML design patterns enhance object-oriented design UML and GoF patterns UML with real-world diagrams, validation, and practical implementation techniques.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/\" \/>\n<meta property=\"og:locale\" content=\"zh_TW\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"UML Design Patterns in Practice\" \/>\n<meta property=\"og:description\" content=\"Learn how UML design patterns enhance object-oriented design UML and GoF patterns UML with real-world diagrams, validation, and practical implementation techniques.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/\" \/>\n<meta property=\"og:site_name\" content=\"Visual Paradigm Skills \u7e41\u9ad4\u4e2d\u6587\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u9810\u4f30\u95b1\u8b80\u6642\u9593\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 \u5206\u9418\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/\",\"url\":\"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/\",\"name\":\"UML Design Patterns in Practice\",\"isPartOf\":{\"@id\":\"https:\/\/skills.visual-paradigm.com\/tw\/#website\"},\"datePublished\":\"2026-02-25T10:40:59+00:00\",\"description\":\"Learn how UML design patterns enhance object-oriented design UML and GoF patterns UML with real-world diagrams, validation, and practical implementation techniques.\",\"breadcrumb\":{\"@id\":\"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/#breadcrumb\"},\"inLanguage\":\"zh-TW\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/skills.visual-paradigm.com\/tw\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Real-World UML: Case Studies in Software Design\",\"item\":\"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Modeling Deep Dives and Verification\",\"item\":\"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Design Patterns Expressed in UML\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/skills.visual-paradigm.com\/tw\/#website\",\"url\":\"https:\/\/skills.visual-paradigm.com\/tw\/\",\"name\":\"Visual Paradigm Skills \u7e41\u9ad4\u4e2d\u6587\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/skills.visual-paradigm.com\/tw\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/skills.visual-paradigm.com\/tw\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-TW\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/skills.visual-paradigm.com\/tw\/#organization\",\"name\":\"Visual Paradigm Skills \u7e41\u9ad4\u4e2d\u6587\",\"url\":\"https:\/\/skills.visual-paradigm.com\/tw\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-TW\",\"@id\":\"https:\/\/skills.visual-paradigm.com\/tw\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/skills.visual-paradigm.com\/tw\/wp-content\/uploads\/sites\/2\/2026\/02\/favicon.svg\",\"contentUrl\":\"https:\/\/skills.visual-paradigm.com\/tw\/wp-content\/uploads\/sites\/2\/2026\/02\/favicon.svg\",\"width\":70,\"height\":70,\"caption\":\"Visual Paradigm Skills \u7e41\u9ad4\u4e2d\u6587\"},\"image\":{\"@id\":\"https:\/\/skills.visual-paradigm.com\/tw\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"UML Design Patterns in Practice","description":"Learn how UML design patterns enhance object-oriented design UML and GoF patterns UML with real-world diagrams, validation, and practical implementation techniques.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/","og_locale":"zh_TW","og_type":"article","og_title":"UML Design Patterns in Practice","og_description":"Learn how UML design patterns enhance object-oriented design UML and GoF patterns UML with real-world diagrams, validation, and practical implementation techniques.","og_url":"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/","og_site_name":"Visual Paradigm Skills \u7e41\u9ad4\u4e2d\u6587","twitter_card":"summary_large_image","twitter_misc":{"\u9810\u4f30\u95b1\u8b80\u6642\u9593":"7 \u5206\u9418"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/","url":"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/","name":"UML Design Patterns in Practice","isPartOf":{"@id":"https:\/\/skills.visual-paradigm.com\/tw\/#website"},"datePublished":"2026-02-25T10:40:59+00:00","description":"Learn how UML design patterns enhance object-oriented design UML and GoF patterns UML with real-world diagrams, validation, and practical implementation techniques.","breadcrumb":{"@id":"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/#breadcrumb"},"inLanguage":"zh-TW","potentialAction":[{"@type":"ReadAction","target":["https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/uml-design-patterns-in-practice\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/skills.visual-paradigm.com\/tw\/"},{"@type":"ListItem","position":2,"name":"Real-World UML: Case Studies in Software Design","item":"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/"},{"@type":"ListItem","position":3,"name":"Modeling Deep Dives and Verification","item":"https:\/\/skills.visual-paradigm.com\/tw\/docs\/real-world-uml-case-studies-software-design\/uml-validation\/"},{"@type":"ListItem","position":4,"name":"Design Patterns Expressed in UML"}]},{"@type":"WebSite","@id":"https:\/\/skills.visual-paradigm.com\/tw\/#website","url":"https:\/\/skills.visual-paradigm.com\/tw\/","name":"Visual Paradigm Skills \u7e41\u9ad4\u4e2d\u6587","description":"","publisher":{"@id":"https:\/\/skills.visual-paradigm.com\/tw\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/skills.visual-paradigm.com\/tw\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-TW"},{"@type":"Organization","@id":"https:\/\/skills.visual-paradigm.com\/tw\/#organization","name":"Visual Paradigm Skills \u7e41\u9ad4\u4e2d\u6587","url":"https:\/\/skills.visual-paradigm.com\/tw\/","logo":{"@type":"ImageObject","inLanguage":"zh-TW","@id":"https:\/\/skills.visual-paradigm.com\/tw\/#\/schema\/logo\/image\/","url":"https:\/\/skills.visual-paradigm.com\/tw\/wp-content\/uploads\/sites\/2\/2026\/02\/favicon.svg","contentUrl":"https:\/\/skills.visual-paradigm.com\/tw\/wp-content\/uploads\/sites\/2\/2026\/02\/favicon.svg","width":70,"height":70,"caption":"Visual Paradigm Skills \u7e41\u9ad4\u4e2d\u6587"},"image":{"@id":"https:\/\/skills.visual-paradigm.com\/tw\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/skills.visual-paradigm.com\/tw\/wp-json\/wp\/v2\/docs\/1418","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skills.visual-paradigm.com\/tw\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/skills.visual-paradigm.com\/tw\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/skills.visual-paradigm.com\/tw\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":0,"href":"https:\/\/skills.visual-paradigm.com\/tw\/wp-json\/wp\/v2\/docs\/1418\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/skills.visual-paradigm.com\/tw\/wp-json\/wp\/v2\/docs\/1417"}],"wp:attachment":[{"href":"https:\/\/skills.visual-paradigm.com\/tw\/wp-json\/wp\/v2\/media?parent=1418"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/skills.visual-paradigm.com\/tw\/wp-json\/wp\/v2\/doc_tag?post=1418"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}