2012-05-14 7 views
0

У меня есть класс A, вызывающий абстрактный класс B, а класс B возвращает объект. Как я могу представить это в UML? Кроме того, есть ли ресурс, который показывает исходный код, а затем эквивалентные диаграммы UML? Это мне очень помогло! Мне сложно понять определения ассоциации, агрегации и т. Д. Без фактического кода в качестве примера.Как представить использование абстрактного класса?

Например,

Class A { 
    constructor { 
     B = B.hello(); 
    } 
} 

Abstract Class B { 
    public static hello() { 
     return new C(); 
    } 
} 

Class C extends B { 

} 

ответ

1

Вы можете показать это с помощью двух диаграмм:

  1. диаграмма классов: A связана с B и C расширяет B. Ничего больше.
  2. диаграмма последовательности: показывает поток вызовов: кто-то звонит A.constructor, затем с A.constructor звоните B.hello, который затем создает новый C.

Определенный синтаксис UML для этих диаграмм можно найти here.

Что касается коды и UML, это проблематично, так как:

  1. Не всех элементов UML может быть смоделирован в коде (многие ко многим отношений не имеют точный код перевода)
  2. Для UML элементов, которые могут быть переведены прямо к коду, существует много разных реализаций, все они правильные.

Я не знаю сайт, который делает это, но это может быть интересный проект ...

Смежные вопросы