{"id":2119,"date":"2026-05-26T07:01:24","date_gmt":"2026-05-26T07:01:24","guid":{"rendered":"https:\/\/www.vpascode.com\/vn\/docs\/uncategorized\/plantuml-class-diagram-syntax-guide\/"},"modified":"2026-05-26T07:01:24","modified_gmt":"2026-05-26T07:01:24","slug":"plantuml-class-diagram-syntax-guide","status":"publish","type":"ld_docs","link":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-class-diagram-syntax-guide\/","title":{"rendered":"H\u01b0\u1edbng d\u1eabn c\u00fa ph\u00e1p s\u01a1 \u0111\u1ed3 l\u1edbp PlantUML"},"content":{"rendered":"<h2>S\u01a1 \u0111\u1ed3 l\u1edbp l\u00e0 g\u00ec?<\/h2>\n<p>M\u1ed9t UML <strong>S\u01a1 \u0111\u1ed3 l\u1edbp<\/strong>l\u00e0 b\u1ea3n thi\u1ebft k\u1ebf c\u1ea5u tr\u00fac n\u1ec1n t\u1ea3ng cho m\u00f4 h\u00ecnh h\u00f3a h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng. N\u00f3 m\u00f4 t\u1ea3 m\u1ed9t h\u1ec7 th\u1ed1ng ph\u1ea7n m\u1ec1m b\u1eb1ng c\u00e1ch tr\u1ef1c quan h\u00f3a c\u00e1c l\u1edbp c\u1ee7a n\u00f3, c\u00e1c thu\u1ed9c t\u00ednh n\u1ed9i b\u1ed9 (tr\u01b0\u1eddng d\u1eef li\u1ec7u), c\u00e1c ph\u01b0\u01a1ng th\u1ee9c (h\u00e0m) v\u00e0 c\u00e1c m\u1ed1i quan h\u1ec7 c\u1ea5u tr\u00fac gi\u1eefa ch\u00fang. Trong khi c\u00e1c c\u01a1 s\u1edf m\u00e3 ngu\u1ed3n c\u00f3 th\u1ec3 tr\u1edf n\u00ean r\u1ed9ng l\u1edbn v\u00e0 kh\u00f3 ph\u00e2n t\u00edch, m\u1ed9t s\u01a1 \u0111\u1ed3 l\u1edbp s\u1ea1ch s\u1ebd cung c\u1ea5p cho c\u00e1c k\u1ef9 s\u01b0 m\u1ed9t tham chi\u1ebfu tr\u1ef1c quan t\u1ee9c th\u00ec v\u1ec1 c\u00e1ch c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng m\u00e3 ngu\u1ed3n t\u01b0\u01a1ng t\u00e1c, k\u1ebf th\u1eeba h\u00e0nh vi v\u00e0 qu\u1ea3n l\u00fd c\u00e1c ranh gi\u1edbi d\u1eef li\u1ec7u.<\/p>\n<p>S\u1eed d\u1ee5ng <strong>VPasCode<\/strong>, b\u1ea1n c\u00f3 th\u1ec3 thi\u1ebft k\u1ebf b\u1ed1 c\u1ee5c l\u1edbp chi ti\u1ebft ho\u00e0n to\u00e0n b\u1eb1ng v\u0103n b\u1ea3n thu\u1ea7n t\u00fay, \u0111\u1ec3 vi\u1ec7c x\u1eed l\u00fd b\u1ed1 c\u1ee5c, k\u00edch th\u01b0\u1edbc h\u1ed9p v\u00e0 kho\u1ea3ng c\u00e1ch d\u00f2ng ho\u00e0n to\u00e0n cho c\u00e1c \u0111\u1ed9ng c\u01a1 \u0111\u00e1m m\u00e2y t\u00edch h\u1ee3p c\u1ee7a ch\u00fang t\u00f4i.<\/p>\n<h2>H\u01b0\u1edbng d\u1eabn c\u00fa ph\u00e1p c\u1ed1t l\u00f5i: C\u00e1c th\u00e0nh ph\u1ea7n v\u00e0 c\u1ea5u tr\u00fac<\/h2>\n<p>\u0110\u1ec3 vi\u1ebft c\u00e1c s\u01a1 \u0111\u1ed3 l\u1edbp ch\u1ea5t l\u01b0\u1ee3ng cao, b\u1ea1n c\u1ea7n hi\u1ec3u ba d\u1ea5u hi\u1ec7u c\u1ea5u tr\u00fac c\u1ed1t l\u00f5i: x\u00e1c \u0111\u1ecbnh th\u00e2n l\u1edbp, g\u00e1n c\u00e1c m\u00f4-\u0111un quy\u1ec1n truy c\u1eadp cho c\u00e1c th\u00e0nh vi\u00ean v\u00e0 \u00e1nh x\u1ea1 c\u00e1c m\u1ed1i quan h\u1ec7 \u0111\u1ed1i t\u01b0\u1ee3ng.<\/p>\n<h3>1. Khai b\u00e1o l\u1edbp v\u00e0 c\u00e1c th\u00e0nh vi\u00ean<\/h3>\n<p>B\u1ea1n khai b\u00e1o m\u1ed9t b\u1ea3n thi\u1ebft k\u1ebf \u0111\u1ed1i t\u01b0\u1ee3ng ti\u00eau chu\u1ea9n b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng t\u1eeb kh\u00f3a <code>class<\/code>keyword. B\u00ean trong c\u00e1c d\u1ea5u ngo\u1eb7c nh\u1ecdn k\u1ebft th\u00fac, b\u1ea1n li\u1ec7t k\u00ea c\u00e1c tr\u01b0\u1eddng v\u00e0 ph\u01b0\u01a1ng th\u1ee9c tr\u00ean t\u1eebng d\u00f2ng ri\u00eang bi\u1ec7t:<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:Iyv9B2vMS2ujBidFJIroJ4xEByqhKQZcvL80Wk2IeioyT8L4YAXd2efeQcvYPevZIafHQd4nHC8fFpydDJ5F8RFOCRaaionLGvENgnO0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:Iyv9B2vMS2ujBidFJIroJ4xEByqhKQZcvL80Wk2IeioyT8L4YAXd2efeQcvYPevZIafHQd4nHC8fFpydDJ5F8RFOCRaaionLGvENgnO0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">class CustomerAccount {\r\n    String accountId\r\n    String emailAddress\r\n    Boolean isActive()\r\n}<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:Iyv9B2vMS2ujBidFJIroJ4xEByqhKQZcvL80Wk2IeioyT8L4YAXd2efeQcvYPevZIafHQd4nHC8fFpydDJ5F8RFOCRaaionLGvENgnO0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:Iyv9B2vMS2ujBidFJIroJ4xEByqhKQZcvL80Wk2IeioyT8L4YAXd2efeQcvYPevZIafHQd4nHC8fFpydDJ5F8RFOCRaaionLGvENgnO0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"jJoXQKj\"><img alt=\"\" class=\"alignnone size-full wp-image-556\" decoding=\"async\" height=\"98\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a18f7f4a1288.png\" width=\"159\"\/><\/p>\n<h3>2. C\u00e1c m\u00f4-\u0111un quy\u1ec1n truy c\u1eadp (ki\u1ec3m so\u00e1t truy c\u1eadp)<\/h3>\n<p>PlantUML \u00e1nh x\u1ea1 c\u00e1c quy t\u1eafc \u0111\u00f3ng g\u00f3i h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng ti\u00eau chu\u1ea9n (public, private, protected v\u00e0 package-private) b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng c\u00e1c ti\u1ec1n t\u1ed1 v\u0103n b\u1ea3n \u0111\u01a1n gi\u1ea3n ngay tr\u01b0\u1edbc t\u00ean tr\u01b0\u1eddng ho\u1eb7c ph\u01b0\u01a1ng th\u1ee9c:<\/p>\n<ul>\n<li><code>+<\/code> Truy c\u1eadp c\u00f4ng khai r\u00f5 r\u00e0ng (c\u00f3 th\u1ec3 truy c\u1eadp b\u1edfi b\u1ea5t k\u1ef3 l\u1edbp n\u00e0o kh\u00e1c)<\/li>\n<li><code>-<\/code> Truy c\u1eadp ri\u00eang t\u01b0 nghi\u00eam ng\u1eb7t (ch\u1ec9 c\u00f3 th\u1ec3 truy c\u1eadp b\u00ean trong l\u1edbp c\u1ee5 th\u1ec3 n\u00e0y)<\/li>\n<li><code>#<\/code> Truy c\u1eadp b\u1ea3o v\u1ec7 (c\u00f3 th\u1ec3 truy c\u1eadp b\u00ean trong l\u1edbp n\u00e0y v\u00e0 c\u00e1c l\u1edbp con c\u1ee7a n\u00f3)<\/li>\n<li><code>~<\/code> Truy c\u1eadp g\u00f3i\/N\u1ed9i b\u1ed9 (ch\u1ec9 c\u00f3 th\u1ec3 truy c\u1eadp b\u00ean trong m\u00f4-\u0111un m\u00e3 ngu\u1ed3n c\u1ee5c b\u1ed9)<\/li>\n<\/ul>\n<h3>3. X\u00e1c \u0111\u1ecbnh c\u00e1c m\u1ed1i quan h\u1ec7 \u0111\u1ed1i t\u01b0\u1ee3ng<\/h3>\n<p>K\u1ebft n\u1ed1i c\u00e1c l\u1edbp y\u00eau c\u1ea7u c\u00e1c k\u00fd hi\u1ec7u m\u0169i t\u00ean c\u1ee5 th\u1ec3 \u0111\u1ec3 ch\u1ec9 ra s\u1ef1 ph\u1ee5 thu\u1ed9c c\u1ea5u tr\u00fac ho\u1eb7c s\u1ef1 k\u1ebft h\u1ee3p c\u1ee7a m\u00e3 ngu\u1ed3n \u1ee9ng d\u1ee5ng c\u1ee7a b\u1ea1n:<\/p>\n<ul>\n<li><strong>K\u1ebf th\u1eeba \/ T\u1ed5ng qu\u00e1t h\u00f3a (L\u00e0-m\u1ed9t):<\/strong>S\u1eed d\u1ee5ng \u0111\u1ea7u m\u0169i t\u00ean tam gi\u00e1c h\u1edf h\u01b0\u1edbng v\u1ec1 l\u1edbp cha: <code>SubClass --|&gt; ParentClass<\/code><\/li>\n<li><strong>Th\u1ef1c thi \/ Th\u1ef1c hi\u1ec7n:<\/strong>S\u1eed d\u1ee5ng \u0111\u01b0\u1eddng n\u00e9t \u0111\u1ee9t k\u00e8m tam gi\u00e1c h\u1edf \u0111\u1ec3 th\u1ec3 hi\u1ec7n th\u1ef1c thi giao di\u1ec7n: <code>ConcreteClass ..|&gt; IInterface<\/code><\/li>\n<li><strong>Th\u00e0nh ph\u1ea7n (Quy\u1ec1n s\u1edf h\u1eefu nghi\u00eam ng\u1eb7t):<\/strong>S\u1eed d\u1ee5ng h\u00ecnh kim c\u01b0\u01a1ng \u0111\u1ea7y \u0111\u1ec3 th\u1ec3 hi\u1ec7n \u0111\u1ed1i t\u01b0\u1ee3ng con kh\u00f4ng th\u1ec3 t\u1ed3n t\u1ea1i n\u1ebfu kh\u00f4ng c\u00f3 container cha: <code>Parent *-- Child<\/code><\/li>\n<li><strong>T\u1ed5 h\u1ee3p (B\u1ed9 s\u01b0u t\u1eadp chung):<\/strong>S\u1eed d\u1ee5ng h\u00ecnh kim c\u01b0\u01a1ng h\u1edf \u0111\u1ec3 th\u1ec3 hi\u1ec7n m\u1ed1i quan h\u1ec7 b\u1ed9 s\u01b0u t\u1eadp t\u1ea1m th\u1eddi: <code>Department o-- Employee<\/code><\/li>\n<\/ul>\n<h2>C\u00e1c th\u1ef1c h\u00e0nh t\u1ed1t nh\u1ea5t cho b\u1ea3n \u0111\u1ed3 l\u1edbp th\u1ef1c t\u1ebf<\/h2>\n<ul>\n<li><strong>T\u00e1ch bi\u1ec7t b\u1ed1 c\u1ee5c b\u1eb1ng c\u00e1c l\u1edbp tr\u1eebu t\u01b0\u1ee3ng:<\/strong> S\u1eed d\u1ee5ng t\u1eeb kh\u00f3a <code>abstract class<\/code> ho\u1eb7c <code>interface<\/code> \u0111\u1ec3 ph\u00e2n bi\u1ec7t tr\u1ef1c quan c\u00e1c ranh gi\u1edbi c\u1ea5u tr\u00fac c\u1ee7a b\u1ea1n v\u1edbi c\u00e1c m\u00f4 h\u00ecnh c\u01a1 s\u1edf d\u1eef li\u1ec7u c\u1ee5 th\u1ec3.<\/li>\n<li><strong>G\u1eafn nh\u00e3n c\u00e1c b\u1ed9i s\u1ed1 s\u1edbm:<\/strong> Lu\u00f4n th\u00eam c\u00e1c b\u1ed9i s\u1ed1 s\u1ed1 h\u1ecdc (nh\u01b0 <code>\"1\"<\/code> ho\u1eb7c <code>\"0..*\"<\/code>) \u1edf c\u1ea3 hai \u0111\u1ea7u m\u0169i t\u00ean quan h\u1ec7 \u0111\u1ec3 l\u00e0m r\u00f5 r\u00e0ng r\u00e0ng bu\u1ed9c d\u1eef li\u1ec7u cho c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n.<\/li>\n<li><strong>Ki\u1ec3m so\u00e1t kho\u1ea3ng c\u00e1ch d\u1ecdc:<\/strong> C\u00e1c s\u01a1 \u0111\u1ed3 l\u1edbp c\u00f3 th\u1ec3 tr\u1edf n\u00ean r\u1ea5t cao. N\u1ebfu b\u1ed1 c\u1ee5c c\u1ee7a b\u1ea1n k\u00e9o d\u00e0i qu\u00e1 xa theo chi\u1ec1u d\u1ecdc, h\u00e3y thay th\u1ebf d\u1ea5u g\u1ea1ch \u0111\u00f4i (<code>--<\/code>) b\u1eb1ng d\u1ea5u g\u1ea1ch \u0111\u01a1n (<code>-<\/code>) b\u00ean trong c\u00e1c m\u0169i t\u00ean quan h\u1ec7 \u0111\u1ec3 bu\u1ed9c c\u0103n ch\u1ec9nh ngang theo chi\u1ec1u song song.<\/li>\n<\/ul>\n<h2>V\u00ed d\u1ee5 s\u01a1 \u0111\u1ed3 l\u1edbp PlantUML trong th\u1ebf gi\u1edbi th\u1ef1c<\/h2>\n<h3>V\u00ed d\u1ee5 1: M\u00f4 h\u00ecnh mi\u1ec1n th\u01b0\u01a1ng m\u1ea1i \u0111i\u1ec7n t\u1eed (T\u00ednh kh\u1ea3 ki\u1ebfn &amp; Bao \u0111\u00f3ng)<\/h3>\n<p>B\u1ea3n thi\u1ebft k\u1ebf n\u00e0y minh h\u1ecda c\u00e1c b\u1ed9 s\u1eeda \u0111\u1ed5i truy c\u1eadp chu\u1ea9n, c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng d\u1eef li\u1ec7u c\u01a1 b\u1ea3n, v\u00e0 c\u00e1c \u00e1nh x\u1ea1 b\u1ed9i s\u1ed1 d\u1eef li\u1ec7u c\u01a1 b\u1ea3n gi\u1eefa c\u00e1c th\u1ef1c th\u1ec3 mua s\u1eafm tr\u1ef1c tuy\u1ebfn c\u1ed1t l\u00f5i.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP3D2W8n38JlXRv3w4bTTj6h1n7PYo1uM7s0s4OjTDkbFug8xsxzAO8vJeRv9bc6Y3wctd0c3OO0-q0Uxfn1dXgwwBKzGShYMls9PmndKXr9J_6pgc3bd26qS26lZxUDEsax-jgr7L8SS_RWhB2sNlrWLSbrBxNGAcWn4aJTKsxQ3wL3wzB144WqCfdisBc8PbJYtqU8cO2wNe2ODir4V65p48D1IG7GAd1N6mHdIx8gl-09\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP11YW8n44NtWToXo4fjMdJhGcJepS30BDG3nEuQEv1E9Aa8m-0XF87UmAMWIxr8tyGu6WHh-Ulptw-QU9AEGgCvAxNq7kOU7Vnn1d5oc99JPWaXYf_LcrXBNsCrnT8XFLOPV5YhKHfOerC_lrzsgKpdQLTc5QZBsOQpnFfsrGkMfLnxLnCjWq8I0ga6OzDcbJeKDYmqGYbr6NHqp2n9tKdn_qU8eO0y7uCOzFizyOIDG5otxUb8iBximRVd7TJj-H04PnCqLNp43G00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass User {\r\n    - String userId\r\n    - String hashedSecret\r\n    + Boolean verifyLogin(String input)\r\n}\r\n\r\nclass Order {\r\n    + String orderId\r\n    + Date timestamp\r\n    - Double calculateTotal()\r\n}\r\n\r\nUser \"1\" --&gt; \"0..*\" Order : \"\u0111\u1eb7t v\u00e0 s\u1edf h\u1eefu\"\r\n@enduml<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP11YW8n44NtWToXo4fjMdJhGcJepS30BDG3nEuQEv1E9Aa8m-0XF87UmAMWIxr8tyGu6WHh-Ulptw-QU9AEGgCvAxNq7kOU7Vnn1d5oc99JPWaXYf_LcrXBNsCrnT8XFLOPV5YhKHfOerC_lrzsgKpdQLTc5QZBsOQpnFfsrGkMfLnxLnCjWq8I0ga6OzDcbJeKDYmqGYbr6NHqp2n9tKdn_qU8eO0y7uCOzFizyOIDG5otxUb8iBximRVd7TJj-H04PnCqLNp43G00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP3D2W8n38JlXRv3w4bTTj6h1n7PYo1uM7s0s4OjTDkbFug8xsxzAO8vJeRv9bc6Y3wctd0c3OO0-q0Uxfn1dXgwwBKzGShYMls9PmndKXr9J_6pgc3bd26qS26lZxUDEsax-jgr7L8SS_RWhB2sNlrWLSbrBxNGAcWn4aJTKsxQ3wL3wzB144WqCfdisBc8PbJYtqU8cO2wNe2ODir4V65p48D1IG7GAd1N6mHdIx8gl-09\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"yEsJYYQ\"><img fetchpriority=\"high\" alt=\"\" class=\"alignnone size-full wp-image-557\" decoding=\"async\" fetchpriority=\"high\" height=\"273\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a18f8074ea12.png\" width=\"259\"\/><\/p>\n<p><strong>Ph\u00e2n t\u00edch c\u00fa ph\u00e1p:<\/strong> K\u00fd hi\u1ec7u <code>-<\/code> ti\u1ec1n t\u1ed1 gi\u1eef c\u00e1c tr\u01b0\u1eddng nh\u1ea1y c\u1ea3m nh\u01b0 th\u00f4ng tin \u0111\u0103ng nh\u1eadp ho\u00e0n to\u00e0n ri\u00eang t\u01b0 b\u00ean trong kh\u1ed1i l\u1edbp <code>User<\/code> l\u1edbp, trong khi c\u00e1c h\u00e0m truy c\u1eadp c\u00f4ng khai s\u1eed d\u1ee5ng k\u00fd hi\u1ec7u <code>+<\/code> marker. Chu\u1ed7i k\u1ebft n\u1ed1i r\u00f5 r\u00e0ng nh\u1ea5n m\u1ea1nh r\u1eb1ng m\u1ed9t ng\u01b0\u1eddi d\u00f9ng c\u00f3 th\u1ec3 tra c\u1ee9u kh\u00f4ng c\u00f3 ho\u1eb7c nhi\u1ec1u \u0111\u01a1n h\u00e0ng m\u1ed9t c\u00e1ch li\u1ec1n m\u1ea1ch.<\/p>\n<h3>V\u00ed d\u1ee5 2: C\u1ed5ng thanh to\u00e1n n\u00e2ng cao (K\u1ebf th\u1eeba &amp; Giao di\u1ec7n)<\/h3>\n<p>B\u1ea3n \u0111\u1ed3 k\u1ef9 thu\u1eadt ph\u1ea7n m\u1ec1m to\u00e0n di\u1ec7n n\u00e0y minh h\u1ecda c\u00e1ch t\u1ed5 ch\u1ee9c c\u00e1c giao di\u1ec7n, v\u00f2ng k\u1ebf th\u1eeba l\u1edbp v\u00e0 c\u00e1c c\u1ea5u th\u00e0nh ph\u1ee9c t\u1ea1p trong m\u1ed9t khung h\u00ecnh th\u1ed1ng nh\u1ea5t.<\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">Plantuml<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:jP9DJiCm48Ntbd87Iom8eFG8g2r_Gh2er7A0gJCqLXsFvHc3mi_TSIaHJGixyCv-Ot_FCs_C0b5IwmfblM1y18FwTWPTYrvcaGmoKzIlXT9vdUafaKFm6f8q5EqBJbfANifBIak7sW0t9ttj4zawdmH94Q-JhxdCqdkX2WLBbWX6j770hAV0U0E2pz3rf2CzbsZzIhSOJGDU9i7UORSdegy3PTyFqGsWZbQB29upmf8llwe3T8wWxarisHijxDEh7i2VweBMwF-s0rjuxlCCt6_mx3U0ksh1kl-0pniA8NCkSW2-sVUMHLl1beVlD6ZMbAGyp0RwbVNOltsySPzCXeBJ4Hri9i2D3Rh6p8tRVQ5sPpuQlPqVXgvGmzbKLQxQkLQeOViEzS4FJwlg9yOuPoZ7_mC0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">Plantuml<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:jP9DJiCm48NtaNA7aLWGGEaHKCklK5bKQZd0r1qQguuds6DG-5bp3XPSeYnxaju4GubeMjY1btxZ-PvdNjSBEWcbIHDjXTmrAeAB0TObMHauLkGzEtX84uZd08wO3Q4535Amq_VKApbOoKuuZ0s1Gb_iDRMth2VnffBWw2pOYS-Yz9GcQO9ZBmwLW3BeFHoXftCKkiEw8Ut0K9osKoZ9gGAjz2hTftf393kfEFg-SgO5DJmTERG-8ZJRxAkwmjemJXeJA_Q7LctIymRWFzKHpyZ-xGHMy3Zd0PhVuD5lXUQqH6t-0puikAeYvpW6u9jzgRs05Yfzkqz1QiP1ikria9rgIqtlNUWNg66yU66u2T5giNnx1hMSlmOGjvYhD5bVTwVpUBYTjpHfhoNFOzNQipHfJsvRRtrkFyz_OdHZV6Botm40\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ninterface IPaymentProcessor {\r\n    + Boolean authorizeAmount(Double cash)\r\n    + void captureFunds()\r\n}\r\n\r\nabstract class BaseGateway {\r\n    # String merchantApiKey\r\n    # String endpointUrl\r\n    + void logTransaction(String payload)\r\n}\r\n\r\nclass StripeGateway {\r\n    - String stripeToken\r\n    + Boolean authorizeAmount(Double cash)\r\n    + void captureFunds()\r\n}\r\n\r\nclass PayPalGateway {\r\n    - String paypalEmail\r\n    + Boolean authorizeAmount(Double cash)\r\n    + void captureFunds()\r\n}\r\n\r\nclass ShoppingCart {\r\n    - List items\r\n    + void checkout(IPaymentProcessor engine)\r\n}\r\n\r\n' Khai b\u00e1o quan h\u1ec7 c\u1ea5u tr\u00fac\r\nBaseGateway ..|&gt; IPaymentProcessor\r\nStripeGateway --|&gt; BaseGateway\r\nPayPalGateway --|&gt; BaseGateway\r\nShoppingCart *-- IPaymentProcessor\r\n@enduml<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:jP9DJiCm48NtaNA7aLWGGEaHKCklK5bKQZd0r1qQguuds6DG-5bp3XPSeYnxaju4GubeMjY1btxZ-PvdNjSBEWcbIHDjXTmrAeAB0TObMHauLkGzEtX84uZd08wO3Q4535Amq_VKApbOoKuuZ0s1Gb_iDRMth2VnffBWw2pOYS-Yz9GcQO9ZBmwLW3BeFHoXftCKkiEw8Ut0K9osKoZ9gGAjz2hTftf393kfEFg-SgO5DJmTERG-8ZJRxAkwmjemJXeJA_Q7LctIymRWFzKHpyZ-xGHMy3Zd0PhVuD5lXUQqH6t-0puikAeYvpW6u9jzgRs05Yfzkqz1QiP1ikria9rgIqtlNUWNg66yU66u2T5giNnx1hMSlmOGjvYhD5bVTwVpUBYTjpHfhoNFOzNQipHfJsvRRtrkFyz_OdHZV6Botm40\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit Plantuml in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:jP9DJiCm48Ntbd87Iom8eFG8g2r_Gh2er7A0gJCqLXsFvHc3mi_TSIaHJGixyCv-Ot_FCs_C0b5IwmfblM1y18FwTWPTYrvcaGmoKzIlXT9vdUafaKFm6f8q5EqBJbfANifBIak7sW0t9ttj4zawdmH94Q-JhxdCqdkX2WLBbWX6j770hAV0U0E2pz3rf2CzbsZzIhSOJGDU9i7UORSdegy3PTyFqGsWZbQB29upmf8llwe3T8wWxarisHijxDEh7i2VweBMwF-s0rjuxlCCt6_mx3U0ksh1kl-0pniA8NCkSW2-sVUMHLl1beVlD6ZMbAGyp0RwbVNOltsySPzCXeBJ4Hri9i2D3Rh6p8tRVQ5sPpuQlPqVXgvGmzbKLQxQkLQeOViEzS4FJwlg9yOuPoZ7_mC0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p id=\"RieZgUQ\"><img alt=\"\" class=\"alignnone size-full wp-image-558\" decoding=\"async\" height=\"396\" sizes=\"(max-width: 819px) 100vw, 819px\" src=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a18f81c9dd3d.png\" srcset=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a18f81c9dd3d.png 819w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a18f81c9dd3d-300x145.png 300w, https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a18f81c9dd3d-768x371.png 768w\" width=\"819\"\/><\/p>\n<p><strong>Ph\u00e2n t\u00edch c\u00fa ph\u00e1p:<\/strong> K\u00fd hi\u1ec7u <code>..|&gt;<\/code> k\u00fd hi\u1ec7u x\u00e1c l\u1eadp r\u1eb1ng l\u1edbp tr\u1eebu t\u01b0\u1ee3ng tri\u1ec3n khai giao di\u1ec7n g\u1ed1c ch\u00ednh c\u1ee7a ch\u00fang ta. C\u00e1c \u0111\u01b0\u1eddng tam gi\u00e1c \u0111\u1ea7y (<code>--|&gt;<\/code>) d\u1eabn c\u00e1c c\u1ed5ng con m\u1ed9t c\u00e1ch r\u00f5 r\u00e0ng v\u00e0o l\u1edbp cha c\u01a1 s\u1edf, trong khi h\u00ecnh kim c\u01b0\u01a1ng \u0111\u1ea7y (<code>*--<\/code>) khai b\u00e1o r\u1eb1ng m\u1ed9t <code>Gi\u1ecf h\u00e0ng<\/code> v\u1ec1 c\u01a1 b\u1ea3n s\u1edf h\u1eefu b\u1ed9 x\u1eed l\u00fd \u0111\u1ed9ng c\u01a1 thanh to\u00e1n c\u1ee7a n\u00f3 trong su\u1ed1t v\u00f2ng \u0111\u1eddi c\u1ee7a m\u1ed9t phi\u00ean l\u00e0m vi\u1ec7c.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>S\u01a1 \u0111\u1ed3 l\u1edbp l\u00e0 g\u00ec? M\u1ed9t UML S\u01a1 \u0111\u1ed3 l\u1edbpl\u00e0 b\u1ea3n thi\u1ebft k\u1ebf c\u1ea5u tr\u00fac n\u1ec1n t\u1ea3ng cho m\u00f4 h\u00ecnh h\u00f3a h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng. N\u00f3 m\u00f4 t\u1ea3 m\u1ed9t h\u1ec7 th\u1ed1ng ph\u1ea7n m\u1ec1m b\u1eb1ng c\u00e1ch tr\u1ef1c quan h\u00f3a c\u00e1c l\u1edbp c\u1ee7a&#8230;<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":2,"template":"","meta":{"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":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","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":""}}},"ld_collection":[14],"class_list":["post-2119","ld_docs","type-ld_docs","status-publish","hentry","ld_collection-vpascode-docs"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PlantUML Class Diagram Syntax | VPasCode Text to Diagram Guide<\/title>\n<meta name=\"description\" content=\"Build object-oriented software models with PlantUML class diagrams in VPasCode, an intuitive diagram-as-code tool.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-class-diagram-syntax-guide\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PlantUML Class Diagram Syntax | VPasCode Text to Diagram Guide\" \/>\n<meta property=\"og:description\" content=\"Build object-oriented software models with PlantUML class diagrams in VPasCode, an intuitive diagram-as-code tool.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-class-diagram-syntax-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"VPasCode\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a18f7f4a1288.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 ph\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-class-diagram-syntax-guide\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-class-diagram-syntax-guide\\\/\",\"name\":\"PlantUML Class Diagram Syntax | VPasCode Text to Diagram Guide\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-class-diagram-syntax-guide\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-class-diagram-syntax-guide\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.vpascode.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/img_6a18f7f4a1288.png\",\"datePublished\":\"2026-05-26T07:01:24+00:00\",\"description\":\"Build object-oriented software models with PlantUML class diagrams in VPasCode, an intuitive diagram-as-code tool.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-class-diagram-syntax-guide\\\/#breadcrumb\"},\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-class-diagram-syntax-guide\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-class-diagram-syntax-guide\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/img_6a18f7f4a1288.png\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/img_6a18f7f4a1288.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/vpascode-docs\\\/plantuml-class-diagram-syntax-guide\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lean Docs\",\"item\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/docs\\\/%ld_collection%\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"H\u01b0\u1edbng d\u1eabn c\u00fa ph\u00e1p s\u01a1 \u0111\u1ed3 l\u1edbp PlantUML\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#website\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/\",\"name\":\"VPasCode\",\"description\":\"by Visual Paradigm\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"vi\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#organization\",\"name\":\"VPasCode\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/06\\\/cropped-vp-online-logo-v1.png\",\"contentUrl\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/wp-content\\\/uploads\\\/sites\\\/12\\\/2026\\\/06\\\/cropped-vp-online-logo-v1.png\",\"width\":128,\"height\":138,\"caption\":\"VPasCode\"},\"image\":{\"@id\":\"https:\\\/\\\/www.vpascode.com\\\/vn\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PlantUML Class Diagram Syntax | VPasCode Text to Diagram Guide","description":"Build object-oriented software models with PlantUML class diagrams in VPasCode, an intuitive diagram-as-code tool.","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:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-class-diagram-syntax-guide\/","og_locale":"vi_VN","og_type":"article","og_title":"PlantUML Class Diagram Syntax | VPasCode Text to Diagram Guide","og_description":"Build object-oriented software models with PlantUML class diagrams in VPasCode, an intuitive diagram-as-code tool.","og_url":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-class-diagram-syntax-guide\/","og_site_name":"VPasCode","og_image":[{"url":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a18f7f4a1288.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"3 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-class-diagram-syntax-guide\/","url":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-class-diagram-syntax-guide\/","name":"PlantUML Class Diagram Syntax | VPasCode Text to Diagram Guide","isPartOf":{"@id":"https:\/\/www.vpascode.com\/vn\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-class-diagram-syntax-guide\/#primaryimage"},"image":{"@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-class-diagram-syntax-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a18f7f4a1288.png","datePublished":"2026-05-26T07:01:24+00:00","description":"Build object-oriented software models with PlantUML class diagrams in VPasCode, an intuitive diagram-as-code tool.","breadcrumb":{"@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-class-diagram-syntax-guide\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-class-diagram-syntax-guide\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-class-diagram-syntax-guide\/#primaryimage","url":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a18f7f4a1288.png","contentUrl":"https:\/\/www.vpascode.com\/wp-content\/uploads\/2026\/05\/img_6a18f7f4a1288.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.vpascode.com\/vn\/docs\/vpascode-docs\/plantuml-class-diagram-syntax-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vpascode.com\/vn\/"},{"@type":"ListItem","position":2,"name":"Lean Docs","item":"https:\/\/www.vpascode.com\/vn\/docs\/%ld_collection%\/"},{"@type":"ListItem","position":3,"name":"H\u01b0\u1edbng d\u1eabn c\u00fa ph\u00e1p s\u01a1 \u0111\u1ed3 l\u1edbp PlantUML"}]},{"@type":"WebSite","@id":"https:\/\/www.vpascode.com\/vn\/#website","url":"https:\/\/www.vpascode.com\/vn\/","name":"VPasCode","description":"by Visual Paradigm","publisher":{"@id":"https:\/\/www.vpascode.com\/vn\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vpascode.com\/vn\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/www.vpascode.com\/vn\/#organization","name":"VPasCode","url":"https:\/\/www.vpascode.com\/vn\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.vpascode.com\/vn\/#\/schema\/logo\/image\/","url":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/06\/cropped-vp-online-logo-v1.png","contentUrl":"https:\/\/www.vpascode.com\/vn\/wp-content\/uploads\/sites\/12\/2026\/06\/cropped-vp-online-logo-v1.png","width":128,"height":138,"caption":"VPasCode"},"image":{"@id":"https:\/\/www.vpascode.com\/vn\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/ld_docs\/2119","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/ld_docs"}],"about":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/types\/ld_docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/users\/4"}],"wp:attachment":[{"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/media?parent=2119"}],"wp:term":[{"taxonomy":"ld_collection","embeddable":true,"href":"https:\/\/www.vpascode.com\/vn\/wp-json\/wp\/v2\/ld_collection?post=2119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}