
有人可以检查我的类图,因为我不太擅长绘制这种类型的 uml 图
乍一看,您使用了很多聚合。这是相当罕见的。我从来没有见过什么时候聚合是合理的一个很好的例子。它通常是简单的关联(没有整体与部分的关系)或组合(删除整体时删除部分)。
不能存在并不意味着聚合。适当的多重性就足够了。可以创建并不意味着聚合。创建通常使用适当的原型使用关系(即虚线箭头)建模,除非创建者和创建之间存在关联(在这种情况下无需明确提及创建)。
4 但拍卖只能由一名个人用户或仅一名商业用户创建。
那么 Auction-PersonalUser 关联的多重性在 PersonalUser 端不能为 1(因为 Auction 可能是由 BusinessUser 创建的)并且 Auction-BusinessUser 关联的多重性在 BusinessUser 端不能为 1(出于同样的原因) )。使用 0..1 作为多重性,但请注意我将写的关于 3 的内容。
3 PersonalUser 或 BusinessUser 可以创建多个 Auction
这相当于一个User可以创建很多Auction。
6 拍卖只能包含一件物品
7 一件物品只能参加一次拍卖
8 没有拍卖的物品就不能存在
9 没有项目就不能存在拍卖
然后在 Item 和 Auction 之间有一个单一的关联,两端的重数为 1。不要使用它进行聚合,也不要使用两个关联。
13 一个类别可以有一个父类别,但这不是强制性的
如果您标记关联结束,这将变得清楚。
25 一个用户可以创建多个论坛主题,但一个论坛主题只能由一个用户创建
这与拍卖只是模糊地相关,也可能独立于它们而存在。把论坛的东西放到一个单独的包里。那么也许拍卖的东西和用户的东西也应该有一个单独的包。
BTW:你没有提到招标服务。似乎单纯建模这些对象的概念并非凭空存在,它们实际上被某些软件使用。在这种情况下,将其排除在外。