Как вы представляете обобщение, которое может содержать экземпляры самого себя или своего родителя в UML? - PullRequest
1 голос
/ 01 февраля 2011

Например, рассмотрим следующее: Существует класс «Текстовая группа», который является обобщением класса «Текстовый объект».Текстовые группы могут содержать один или несколько текстовых объектов или одну или несколько текстовых групп.Как бы я представлял это в UML?Любые соответствующие ссылки?

Спасибо!

Ответы [ 4 ]

1 голос
/ 01 февраля 2011

Думаю, вы хотите Композитный паттерн .

hth.

0 голосов
/ 01 февраля 2011

Классы не ограничены одним отношением и могут быть самореферентными. Вы можете нарисовать как обобщение, так и композиционные отношения.

class diagram

Однако я бы поставил под сомнение вашу спецификацию множественности «один или несколько» в самореферентном классе, поскольку для этого потребуется либо круговая, либо бесконечно рекурсивная ссылка. «ноль или более», вероятно, будет более уместным. Я также поставил бы под сомнение семантику отдельного объекта, являющегося типом группы, возможно, звучит нелогично.

0 голосов
/ 01 февраля 2011

Обобщение показывает отношение в дереве наследования между родительским и дочерним классами.Если вы хотите показать сдерживание, используйте композицию или агрегацию.Как уже упоминалось выше, шаблон Composite идеально подходит для вашей задачи.Вы используете композицию с интерфейсом, который вы реализуете с помощью как узлового, так и конечного классов в вашей иерархии композиции.

0 голосов
/ 01 февраля 2011

Я думаю, что вы просто скомпонуете его, как и любой другой класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...