प्लांटयूएमएल क्लास डायग्राम सिंटैक्स गाइड

क्लास डायग्राम क्या है?

एक यूएमएल क्लास डायग्रामऑब्जेक्ट-ओरिएंटेड मॉडलिंग का आधारभूत संरचनात्मक ब्लूप्रिंट है। यह अपने क्लासेज, उनके आंतरिक लक्षणों (डेटा फील्ड्स), उनके मेथड्स (फंक्शन्स) और उनके बीच संरचनात्मक संबंधों को दृश्य रूप से दर्शाकर सॉफ्टवेयर सिस्टम को मैप करता है। जबकि कोड बेस फैले हुए हो सकते हैं और पार्स करना मुश्किल हो सकता है, एक साफ क्लास डायग्राम इंजीनियर्स को कोड ऑब्जेक्ट्स के बीच इंटरैक्शन, व्यवहार के विरासत और डेटा सीमाओं के प्रबंधन के बारे में तुरंत दृश्य संदर्भ प्रदान करता है।

उपयोग करके वीपासकोड, आप शुद्ध पाठ में पूरी तरह से विस्तृत क्लास लेआउट डिज़ाइन कर सकते हैं, जिसमें लेआउट इंजीनियरिंग, बॉक्स साइज़िंग और लाइन स्पेसिंग को पूरी तरह से हमारे एकीकृत क्लाउड इंजन के लिए छोड़ दिया जाता है।

कोर सिंटैक्स गाइड: तत्व और निर्माण

उच्च गुणवत्ता वाले क्लास डायग्राम लिखने के लिए, आपको तीन मुख्य संरचनात्मक चिह्नों को समझने की आवश्यकता है: क्लास बॉडी को परिभाषित करना, सदस्यों को दृश्यता मॉडिफायर निर्धारित करना और ऑब्जेक्ट संबंधों को मैप करना।

1. क्लासेज और सदस्यों की घोषणा

आप एक मानक ऑब्जेक्ट ब्लूप्रिंट की घोषणा करते हैं क्लासकीवर्ड का उपयोग करके। पीछे वाले कर्ली ब्रेसेज के भीतर, आप अपने फील्ड्स और मेथड्स को अलग-अलग पंक्तियों पर सूचीबद्ध करते हैं:

क्लास कस्टमरएकाउंट {
    स्ट्रिंग एकाउंटआईडी
    स्ट्रिंग ईमेलएड्रेस
    बूलियन एक्टिवहै()
}

2. दृश्यता मॉडिफायर (एक्सेस कंट्रोल)

प्लांटयूएमएल मानक ऑब्जेक्ट-ओरिएंटेड एनकैप्सुलेशन नियमों (पब्लिक, प्राइवेट, प्रोटेक्टेड और पैकेज-प्राइवेट) को सरल पाठ प्रीफिक्स के उपयोग से फील्ड या मेथड के नाम के ठीक पहले मैप करता है:

  • + स्पष्ट पब्लिक एक्सेस (किसी भी अन्य क्लास द्वारा पहुँचयोग्य)
  • - सख्त प्राइवेट एक्सेस (केवल इस विशिष्ट क्लास के भीतर पहुँचयोग्य)
  • # प्रोटेक्टेड एक्सेस (इस क्लास और इसके उपवर्गों के भीतर पहुँचयोग्य)
  • ~ पैकेज/इंटर्नल एक्सेस (केवल स्थानीय कोड मॉड्यूल के भीतर पहुँचयोग्य)

3. ऑब्जेक्ट संबंधों को परिभाषित करना

क्लासेज को जोड़ने के लिए विशिष्ट तीर नोटेशन की आवश्यकता होती है जो आपके एप्लीकेशन कोड के संरचनात्मक निर्भरता या संरचना को इंगित करते हैं:

  • विरासत / सामान्यीकरण (है-ए): माता-पिता क्लास की ओर इशारा करने वाले खुले त्रिभुज तीर के सिरे का उपयोग करता है: उपवर्ग --|> माता-पिता क्लास
  • कार्यान्वयन / वास्तविकीकरण: इंटरफेस के कार्यान्वयन को दिखाने के लिए एक बिंदीदार रेखा और खुले त्रिभुज का उपयोग करता है: संगठित क्लास ..|> Iइंटरफेस
  • संयोजन (कठोर स्वामित्व): बच्चे की वस्तु के माता-पिता कंटेनर के बिना अस्तित्व में नहीं आ सकती है, इसे दिखाने के लिए एक ठोस हीरे का उपयोग करता है: माता-पिता *-- बच्चा
  • संगठन (साझा संग्रह): अस्थायी संग्रह संबंध को दिखाने के लिए एक खुले हीरे का उपयोग करता है: विभाग o-- कर्मचारी

व्यावहारिक क्लास नक्शों के लिए सर्वोत्तम व्यवहार

  • सार्वजनिक क्लास के साथ लेआउट को अलग करें: का उपयोग करें सार्वजनिक क्लास या इंटरफेस अपनी संरचनात्मक सीमाओं को वास्तविक डेटाबेस मॉडल से दृश्य रूप से अलग करने के लिए कीवर्ड का उपयोग करें।
  • बहुलता को जल्दी लेबल करें: हमेशा संख्यात्मक बहुलता (जैसे "1" या "0..*") अपने संबंध तीर के दोनों सिरों पर जोड़ें ताकि डेटा सीमाओं को डेवलपर्स के लिए स्पष्ट किया जा सके।
  • ऊर्ध्वाधर अंतराल को नियंत्रित करें: क्लास आरेख बहुत लंबे हो सकते हैं। यदि आपका लेआउट बहुत ऊर्ध्वाधर रूप से फैल गया है, तो डबल डैश (--) को सिंगल डैश (-) अपने संबंध त стрेलों के अंदर डालें ताकि एक दूसरे के साथ क्षैतिज संरेखण बना रहे।

वास्तविक दुनिया के PlantUML क्लास डायग्राम उदाहरण

उदाहरण 1: ई-कॉमर्स डोमेन मॉडल (दृश्यता और एन्कैप्सुलेशन)

यह ब्लूप्रिंट मानक एक्सेस मॉडिफायर, मूल डेटा ऑब्जेक्ट्स, और मुख्य ऑनलाइन शॉपिंग एंटिटीज के बीच मूल डेटा बहुलता मैपिंग को दर्शाता है।

@startuml
class User {
    - String userId
    - String hashedSecret
    + Boolean verifyLogin(String input)
}

class Order {
    + String orderId
    + Date timestamp
    - Double calculateTotal()
}

User "1" --> "0..*" Order : "स्थापित करता है और स्वामित्व रखता है"
@enduml

सिंटैक्स विश्लेषण:- प्रीफिक्स संवेदनशील फील्ड्स जैसे प्रमाणपत्र को सख्ती से निजी रखता है User क्लास ब्लॉक में, जबकि सार्वजनिक एक्सेस फंक्शन का उपयोग करते हैं + मार्कर। संबंध डेटा स्पष्ट रूप से इंगित करता है कि एक उपयोगकर्ता शून्य या बहुत सारे आदेशों को बिना किसी दिक्कत के खोज सकता है।

उदाहरण 2: उन्नत भुगतान गेटवे (विरासत और इंटरफेस)

यह व्यापक सॉफ्टवेयर इंजीनियरिंग नक्शा दिखाता है कि एक एकीकृत फ्रेमवर्क के भीतर इंटरफेस, क्लास विरासत लूप और जटिल संरचनाओं को कैसे व्यवस्थित किया जाए।

@startuml
interface IPaymentProcessor {
    + Boolean authorizeAmount(Double cash)
    + void captureFunds()
}

abstract class BaseGateway {
    # String merchantApiKey
    # String endpointUrl
    + void logTransaction(String payload)
}

class StripeGateway {
    - String stripeToken
    + Boolean authorizeAmount(Double cash)
    + void captureFunds()
}

class PayPalGateway {
    - String paypalEmail
    + Boolean authorizeAmount(Double cash)
    + void captureFunds()
}

class ShoppingCart {
    - List items
    + void checkout(IPaymentProcessor engine)
}

' संरचनात्मक संबंध घोषणाएं
BaseGateway ..|> IPaymentProcessor
StripeGateway --|> BaseGateway
PayPalGateway --|> BaseGateway
ShoppingCart *-- IPaymentProcessor
@enduml

सिंटैक्स विश्लेषण:..|> नोटेशन स्थापित करता है कि एबस्ट्रैक्ट क्लास हमारे मुख्य रूट इंटरफेस को लागू करती है। ठोस त्रिभुज रेखाएं (--|>) बच्चे गेटवे को उनके मूल अभिभावक क्लास में स्पष्ट रूप से ले जाती हैं, जबकि ठोस हीरा (*--) घोषित करता है कि एक शॉपिंग कार्ट मूल रूप से एक सत्र जीवनचक्र के दौरान इसके भुगतान इंजन प्रोसेसर का स्वामित्व रखता है।

Scroll to Top