Co to jest diagram obiektów?
Diagram obiektów to diagram strukturalny diagram UMLktóry działa jak konkretny, rzeczywisty obraz stanu aplikacji. Podczas gdy diagram klas przedstawia abstrakcyjne szkice, typy danych i zasady strukturalne systemu, diagram obiektów wizualizuje aktywną instancję wykonywania w konkretnym momencie. Modeluje rzeczywiste instancje obiektów, wyświetla dokładne wartości przypisane do ich pól i wyróżnia konkretne połączenia istniejące między tymi instancjami podczas działania programu.
Ten konkretny typ diagramu UMLjest niezwykle wartościowy przy debugowaniu skomplikowanych struktur danych, wyjaśnianiu głęboko zagnieżdżonych stanów relacji (takich jak grafy drzewa rodzic-dziecko) lub weryfikowaniu, czy wzorzec projektowy działa zgodnie z oczekiwaniami w określonych przypadkach krawędziowych. Dzięki VPasCode, możesz bezproblemowo tworzyć skrypty relacji obiektów w czasie rzeczywistym, całkowicie pomijając ręczne narzędzia do rysowania pól.
Podstawowy przewodnik składniowy: elementy i konstrukcje
Aby stworzyć dokładny, zgodny z normami diagram obiektów UML w PlantUML, musisz zrozumieć instancjonowanie obiektów, przypisywanie wartości pól oraz mapowanie połączeń między instancjami.
1. Instancjonowanie obiektów (nazwa vs. typy klas)
Obiekty są deklarowane za pomocą słowa kluczowego objectsłowo kluczowe. Zgodnie z standardowymi zasadami modelowania UML definiujesz obiekt, podając jego unikalną nazwę instancji, po której następuje dwukropek i typ szablonu klasy nadrzędnej:
object "currentUser : Account" as activeUser ![]()
Porada: Zawsze używaj słowa kluczowego assłowo kluczowe, aby przypisać długą deklarację nazwy instancji do krótkiego wewnętrznego skrótu ID (takiego jak activeUser), aby szybko i sprawnie rysować linie połączeń.
2. Przypisywanie stanów pól i wartości czasu wykonania
Aby wypełnić obiekty wartościami danych testowych, otwórz blok ciała za pomocą końcowych klamr i zapisz przypisania klucz-wartość danych w osobnych liniach. W przeciwieństwie do definicji klas, nie dodawaj tutaj typów danych – używaj rzeczywistych wartości operacyjnych:
obiekt "adminCart : ShoppingCart" jako cart1 {
cartId = "CART-9081"
itemCount = 3
isTaxExempt = false
} 
3. Mapowanie łączy między instancjami
Połączenia między konkretnymi instancjami na diagramie obiektów reprezentują rzeczywiste wskaźniki pamięci, a nie abstrakcyjne wzorce strukturalne. Mapujesz te połączenia za pomocą pełnych podwójnych kresek (“--). Możesz również dołączyć etykiety typu string, aby wskazać kontekst funkcjonalny połączenia:
activeUser -- cart1 : "właściwy i modyfikujący" 
Najlepsze praktyki dla praktycznych map obiektów
- Skup się na tym, co ma znaczenie: Nie wymieniał wszystkich pól z definicji klasy. Włącz tylko kluczowe wartości zmiennych, które bezpośrednio wyjaśniają konkretny stan czasu wykonania lub błąd, który chcesz przedstawić.
- Utrzymuj połączenia w obojętnej formie: Unikaj używania trójkątów dziedziczenia lub ściśle określonych diamentów kompozycji na diagramie obiektów. Używaj prostych, płaskich linii relacji (
--) lub podstawowych zakończeń strzałek (-->) aby pokazać odniesienia. - Wyrównaj iteracje poziomo: Jeśli mapujesz listę tablicową lub sekwencję obiektów historycznych, użyj poziomych strzałek nawigacyjnych takich jak
-right->aby wymusić na instancjach renderowanie się czysto w jednym wierszu.
Przykłady rzeczywistych diagramów obiektów PlantUML
Przykład 1: Stan sesji tokenu tożsamości (mapowanie konkretnych wartości)
Ten szablon mapuje aktywny stan autoryzacji bezpieczeństwa, pokazując, jak pojedynczy zautoryzowany użytkownik łączy się z wieloma konkretnymi aktywnymi instancjami sesji maszynowymi z różnymi zmiennymi danych.
@startuml
obiekt "targetUser : UserAccount" jako user {
userId = 1042
username = "dev_admin"
status = "ACTIVE"
}
obiekt "sessionMobile : UserSession" jako session1 {
sessionId = "SESS-AAA-99"
deviceOS = "iOS 17"
ipAddress = "192.168.1.54"
}
obiekt "sessionDesktop : UserSession" jako session2 {
sessionId = "SESS-BBB-11"
deviceOS = "macOS 14"
ipAddress = "72.44.12.102"
}
' Ustanowienie połączeń czasu działania
user -- session1 : "zalogowany na"
user -- session2 : "zalogowany na"
@enduml 
Rozbicie składni: Ten układ uchwyca jednoznaczny scenariusz w kodzie produkcyjnym: jeden konkretny rekord użytkownika (ID 1042), który aktywuje jednocześnie dwa całkowicie niezależne egzemplarze sesji czasu działania. Każdy kontener sesji śledzi własne izolowane parametry układu metadanych.
Przykład 2: Stan realizacji faktury e-commerce (mapy wielu encji)
Ten zaawansowany szkic systemu odwzorowuje graf zakończonej transakcji finansowej. Dokładnie pokazuje, jak rekordy zamówień, dzienniki transakcji i paczki magazynowe są ze sobą powiązane w konkretnym momencie czasu.
@startuml
obiekt "buyerProfile : Customer" jako customer {
email = "[email protected]"
tier = "VIP"
}
obiekt "activeOrder : Order" jako order {
orderNumber = "#99122"
subtotal = 149.99
currency = "USD"
}
obiekt "stripeTransaction : LedgerEntry" jako ledger {
referenceId = "ch_3Mv8x"
gatewayStatus = "SUCCESS"
settledAt = "2026-05-26"
}
obiekt "packageA : Shipment" jako ship1 {
trackingCode = "1Z999AA1"
carrier = "UPS"
weightKg = 1.4
}
obiekt "packageB : Shipment" jako ship2 {
trackingCode = "1Z999AA2"
carrier = "UPS"
weightKg = 0.8
}
' Połączenia strukturalne wykonania
customer -- order : "złożony"
order -- ledger : "finansowany przez"
order -- ship1 : "zrealizowany przez"
order -- ship2 : "zrealizowany przez"
@enduml 
Rozbicie składni: Ten szablon zapewnia bardzo szczegółowy przegląd złożonego stanu systemu. Pokazuje jedno zamówienie powiązane z pomyślnym dziennikiem transakcji zakupowej, podzielone na dwa różne pliki fizycznych przesyłek. Takie poziom szczegółowości czyni go doskonałym szkicem do audytu struktur danych i procesów systemowych.