Некоторые основные вопросы UML - PullRequest
1 голос
/ 28 апреля 2010

Что это значит, когда у вас есть что-то, как показано на следующем рисунке? альтернативный текст http://img710.imageshack.us/img710/3876/3gmygrextht5dsd2c4svh1i.png

У каждого Клиента нет ни одного, ни одного, ни нескольких Заказов, в то время как у каждого Заказа есть только один Клиент?

И по отношению к следующему: альтернативный текст http://img28.imageshack.us/img28/4372/bod24yjzahqjlnrvjtfezax.png

Что означает черный алмаз в этом контексте? Как называется этот черный бриллиант?

Спасибо

Ответы [ 3 ]

4 голосов
/ 28 апреля 2010

На первом рисунке Order может быть связан только с один Customer, в то время как один Customer может иметь много Order. *

Черный бриллиант во втором примере называется композиция или связанные отношения. Композиция обычно имеет сильную зависимость жизненного цикла между экземплярами класса контейнера и экземплярами содержащегося класса или классов. В вашем случае Order - это класс контейнера, а Customer - это содержащийся в нем класс.

Справка:

2 голосов
/ 28 апреля 2010

На верхней диаграмме стрелки указывают на связь. Это означает, что у Клиента может быть много заказов, а у заказа может быть один клиент. Поскольку на каждом конце есть стрелка, это означает, что отношение является «двунаправленным», что означает, что каждый класс имеет ссылку на другой (каждый класс «знает» о другом).

Соответствующие классы могут выглядеть следующим образом:

public class Order
{
    public Customer Customer {get;set;}
    // Other order properties
}

public class Customer
{
    public List<Order> Orders {get;set;}
    // Other Customer properties
}

На втором рисунке залитый ромб представляет «Композицию». Это более конкретный тип отношений. Композицию обычно сравнивают с «агрегацией», которая представляет собой открытый бриллиант.

С заполненным бриллиантом (состав) это означает, что Заказ имеет «сильную зависимость жизненного цикла» от класса Заказчика. Распространенным способом понимания композиции является утверждение, что один класс «владеет» другим. В этом случае вы бы сказали, что Заказ «владеет» Клиентом, что на самом деле не имеет смысла, поэтому я думаю, что это может быть плохим примером. На самом деле Заказчик должен владеть Заказом, поэтому я думаю, что заполненный бриллиант должен быть на другой стороне отношений.

1 голос
/ 28 апреля 2010

Вот хороший сайт , чтобы запомнить эти

Как говорит Энтони для реальных примеров

...