一些基本的UML问题

时间:2010-04-28 00:32:58

标签: c# oop uml

如果你有如下图所示的含义是什么意思? alt text http://img710.imageshack.us/img710/3876/3gmygrextht5dsd2c4svh1i.png

每个客户没有,一个或多个订单,而每个订单只有一个客户?

与以下相关: alt text http://img28.imageshack.us/img28/4372/bod24yjzahqjlnrvjtfezax.png

在这种情况下,黑钻是什么意思?这颗黑钻怎么称呼?

由于

3 个答案:

答案 0 :(得分:4)

在第一张图片中,Order只能与一个 Customer相关联,而一个Customer可以许多 Order

第二个示例中的黑色菱形称为composition或关联关系。组合通常在容器类的实例与包含的类的实例之间具有强烈的生命周期依赖性。在您的情况下,Order是容器类,Customer是其包含的类。

参考:

答案 1 :(得分:2)

在顶部图中,箭头表示关联。这意味着客户可以拥有多个订单,订单可以拥有一个客户。由于每一端都有一个箭头,这意味着这种关系是“双向的”,这意味着每个类都有一个对另一个的引用(每个类“知道”另一个)。

相应的类可能如下所示:

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

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

在第二张图中,填充的菱形代表“组合物”。这是一种更具体的关系类型。通常将成分与“聚合”进行比较,“聚合”是一种开放的钻石。

使用填充的菱形(合成),这意味着订单对Customer类具有“强生命周期”依赖性。理解作文的常用方法是说一个类“拥有”另一个类。在这种情况下,你会说订单“拥有”客户,这实际上没有意义,所以我认为这可能是一个糟糕的例子。真的,这是客户应该拥有订单,所以我认为填充的钻石应该在关系的另一边。

答案 2 :(得分:1)

这是记住这些

good site

正如安东尼所说的实际例子