Как правильно нарисовать диаграмму классов?

Как правильно нарисовать диаграмму классов? Если требуется могу нарисовать приложить в Visio или другой программе.

Диаграмма в онлайн редакторе: https://www.plantuml.com/plantuml/uml/VP71IWCn443l-OevjaZx0KMaseC85Znu4m_3PimEpKxAP5PPr7ytYsPT3sikERoyUJ3PPqErleikdrZEgDX1P24RpWH9hKtEDH5pXWTDOQJl3igvW2Eoh513ta4sPGbFp-iTl2RsxhCwnoGqt61pcgnRiWEgVopZL-jgpfYIPxldZct4BFRBhaLwZ8UsDAd2KdBb9dt1Xk3kMny39RYSMuxzdvhFlzpuz2QRQIr_uSSFdHRWwhkjScXjUpL3Un9VVk0B

Program

class Program
{
    static void Main(string[] args)
    {  
        ICreditCard creditCard = new MoneyBack();
    }
}

ICreditCard

public interface ICreditCard
{
    string GetCardType();
    int GetCreditLimit();
    int GetAnnualCharge();
}

MoneyBack

public class MoneyBack : ICreditCard
{
    public string GetCardType()
    {
        return "MoneyBack";
    }
    public int GetCreditLimit()
    {
        return 15000;
    }
    public int GetAnnualCharge()
    {
        return 500;
    }
}

Вар-1

введите сюда описание изображения

@startuml
skinparam linetype ortho

class Program {
    + Main(args: string[]): void
}

class MoneyBack {
    + GetCardType(): string
    + GetCreditLimit(): int
    + GetAnnualCharge(): int
}


interface ICreditCard {
  + GetCardType(): string
  + GetCreditLimit(): int
  + GetAnnualCharge(): int
}

ICreditCard <-down- Program 
ICreditCard <|-down- MoneyBack
Program .right.> MoneyBack
@enduml

Вар-2

введите сюда описание изображения

@startuml
class Program {
    static void Main(string[] args)
}

interface ICreditCard {
    string GetCardType()
    int GetCreditLimit()
    int GetAnnualCharge()
}

class MoneyBack {
    string GetCardType()
    int GetCreditLimit()
    int GetAnnualCharge()
}

Program -right-|> ICreditCard
ICreditCard <|.. MoneyBack
@enduml

Вар-3

введите сюда описание изображения

@startuml
left to right direction

class Program {
    static void Main(string[] args)
}

interface ICreditCard {
    string GetCardType()
    int GetCreditLimit()
    int GetAnnualCharge()
}

class MoneyBack {
    string GetCardType()
    int GetCreditLimit()
    int GetAnnualCharge()
}

Program --|> ICreditCard
ICreditCard <|.. MoneyBack
@enduml

Ответы (0 шт):