संलग्न यूएमएल आरेख में 5 वर्ग हैं और मैं यह जानना चाहता हूं कि कक्षा ए, बी और सी के शीर्ष को लंबवत रूप से कैसे संरेखित किया जा सकता है जबकि बाल वर्ग संरेखित रहते हैं। कृपया मेरा यूएमएल कोड और मेरे स्क्रीनशॉट नीचे देखें।

आपके समर्थन के लिए बहुत कुछ! :)

वर्तमान में यह कैसा दिखता है:

enter image description here

यह कैसा दिखना चाहिए (पेंट संपादित):

enter image description here

यूएमएल - कोड:

@startuml TestClassDiagram
scale 800 width
skinparam SameClassWidth true
skinparam ClassFontSize 15

class classA {
{field}  - attribute1  : int
{field}  - attribute2  : int
{method} + method1(void)
{method} + method2(void)
{method} + method3(void)
{method} + method4(void)
{method} + method5(void)
}

class classB {
{field}  - attribute1 : int
{field}  - attribute2 : int
{method} + method1(void)
{method} + method2(void)
}
class classBchild     {
{method} + method1(void)    
}

class classC {
{field}  - attribute1  : int
{field}  - attribute2  : int
{field}  - attribute3  : int
{field}  - attribute4  : int
{method} + method1(void)
{method} + method2(void)
{method} + method3(void)
{method} + method4(void)
{method} + method5(void)
}
class classCchild {
{method} + method1(void)   
}

classB <|-- classBchild
classC <|-- classCchild

@enduml
3
HKC72 9 पद 2020, 09:47

1 उत्तर

सबसे बढ़िया उत्तर

प्लांटयूएमएल (अभी तक) में कक्षाओं को संरेखित करने की सुविधा नहीं है।

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

यह बस बीच से सभी आरेखों को संरेखित कर रहा है।

इसका उपयोग करके, हम एक ऐसा हैक बना सकते हैं जो सॉर्ट क्लास परिभाषा को अतिरिक्त न्यूलाइन्स के साथ पैडिंग करके वांछित परिणाम प्राप्त करता है जब तक कि वे सभी समान आकार के न हों:

@startuml
skinparam {
    SameClassWidth true
    ClassFontSize 15
}

class A as "classA" {
    {field}  - attribute1  : int
    {field}  - attribute2  : int


    __
    {method} + method1(void)
    {method} + method2(void)
    {method} + method3(void)
    {method} + method4(void)
    {method} + method5(void)
}

class B as "classB" {
    {field}  - attribute1 : int
    {field}  - attribute2 : int


    __
    {method} + method1(void)
    {method} + method2(void)



}

class Bc as "classBchild"     {
    {method} + method1(void)    
}

class C as "classC" {
    {field}  - attribute1  : int
    {field}  - attribute2  : int
    {field}  - attribute3  : int
    {field}  - attribute4  : int

    {method} + method1(void)
    {method} + method2(void)
    {method} + method3(void)
    {method} + method4(void)
    {method} + method5(void)
}

class Cc as "classCchild" {
    {method} + method1(void)   
}

B <|-- Bc
C <|-- Cc
@enduml
1
Potherca 5 फरवरी 2021, 19:55