На верхней диаграмме стрелки указывают на связь. Это означает, что у Клиента может быть много заказов, а у заказа может быть один клиент. Поскольку на каждом конце есть стрелка, это означает, что отношение является «двунаправленным», что означает, что каждый класс имеет ссылку на другой (каждый класс «знает» о другом).
Соответствующие классы могут выглядеть следующим образом:
public class Order
{
public Customer Customer {get;set;}
// Other order properties
}
public class Customer
{
public List<Order> Orders {get;set;}
// Other Customer properties
}
На втором рисунке залитый ромб представляет «Композицию». Это более конкретный тип отношений. Композицию обычно сравнивают с «агрегацией», которая представляет собой открытый бриллиант.
С заполненным бриллиантом (состав) это означает, что Заказ имеет «сильную зависимость жизненного цикла» от класса Заказчика. Распространенным способом понимания композиции является утверждение, что один класс «владеет» другим. В этом случае вы бы сказали, что Заказ «владеет» Клиентом, что на самом деле не имеет смысла, поэтому я думаю, что это может быть плохим примером. На самом деле Заказчик должен владеть Заказом, поэтому я думаю, что заполненный бриллиант должен быть на другой стороне отношений.