1
Теория моделирования и нотации / Re: Как правильно структурировать диаграмму классов в PlantUml?
« : 06 Мая 2024, 14:30:19 »
Обычно, обсуждая диаграммы, рассматривают языковые (uml-ьные) конструкции, а не "бантики" -- что слева, что справа.
Я эту рисовалку увидело и попробовало сегодня. С Вашей подачи.
Добавляете свои директивы для стиля и получаете орто-линии + слева-направные классы.
[Обще]Принято, что суперкласс слева от своих потомков. Или сверху над своими потомками.
===
@startuml
skinparam linetype ortho
left to right direction
class BaseViewModel {
+ event PropertyChangedEventHandler PropertyChanged
# OnPropertyChanged([CallerMemberName] string PropertyName = null):void {abstract}
# Set<T>(ref T field, T value, [CallerMemberName] string PropertyName = null):bool {abstract}
}
class MainViewModel {
+ MainViewModel()
}
class Entity1ViewModel {
+ Main(args: string[]): void
}
class Entity2ViewModel {
+ Main(args: string[]): void
}
class Entity3ViewModel {
+ Main(args: string[]): void
}
BaseViewModel <|-- MainViewModel
BaseViewModel <|-- Entity1ViewModel
BaseViewModel <|-- Entity2ViewModel
BaseViewModel <|-- Entity3ViewModel
Entity1ViewModel "_entity1ViewModel" <-- MainViewModel
Entity2ViewModel "_entity2ViewModel" <-- MainViewModel
Entity3ViewModel "_entity3ViewModel" <-- MainViewModel
@enduml
===
Я эту рисовалку увидело и попробовало сегодня. С Вашей подачи.
Добавляете свои директивы для стиля и получаете орто-линии + слева-направные классы.
[Обще]Принято, что суперкласс слева от своих потомков. Или сверху над своими потомками.
===
@startuml
skinparam linetype ortho
left to right direction
class BaseViewModel {
+ event PropertyChangedEventHandler PropertyChanged
# OnPropertyChanged([CallerMemberName] string PropertyName = null):void {abstract}
# Set<T>(ref T field, T value, [CallerMemberName] string PropertyName = null):bool {abstract}
}
class MainViewModel {
+ MainViewModel()
}
class Entity1ViewModel {
+ Main(args: string[]): void
}
class Entity2ViewModel {
+ Main(args: string[]): void
}
class Entity3ViewModel {
+ Main(args: string[]): void
}
BaseViewModel <|-- MainViewModel
BaseViewModel <|-- Entity1ViewModel
BaseViewModel <|-- Entity2ViewModel
BaseViewModel <|-- Entity3ViewModel
Entity1ViewModel "_entity1ViewModel" <-- MainViewModel
Entity2ViewModel "_entity2ViewModel" <-- MainViewModel
Entity3ViewModel "_entity3ViewModel" <-- MainViewModel
@enduml
===