有人可以检查我的类图,因为我不太擅长绘制这种类型的uml图
答案 0 :(得分:4)
乍一看,您使用了大量聚合。这种情况非常罕见。我从未见过聚合合理的好例子。它通常是一个普通的关联(没有全部关系)或一个组合(删除整个部分时删除该部分)。
没有就不存在并不意味着聚合。适当的多样性就足够了。 可以创建并不意味着聚合。创建通常使用适当的刻板用法关系(即虚线箭头)建模,除非存在创建者和创建之间的关联(在这种情况下不需要明确提及创建)。
4但是,只能由一个PersonalUser或仅一个BusinessUser创建拍卖。
然后,在PersonalUser端,Auction-PersonalUser关联的多样性不能为1(因为拍卖可能是由BusinessUser创建的),并且在BusinessUser端,Auction-BusinessUser关联的多样性不能为1(对于同样的原因)。使用0..1作为多重性,但要注意我将写的关于3的内容。
3 PersonalUser或BusinessUser可以创建许多拍卖
这相当于用户可以创建多个拍卖。
6拍卖只能包含一个项目
7项目只能在一次拍卖中
8没有拍卖项目就不能存在
9没有项目
,拍卖就不可能存在
然后在Item和Auction之间存在单个关联,两端的复数为1。不要从中进行聚合,也不要使用两个关联。
13类别可以有父类别,但这不是强制性的
如果您标记关联结束,那将会很清楚。
25用户可以创建许多ForumTopics,但只能由一个用户创建ForumTopic
这与拍卖只是模糊相关,也可能与拍卖无关。将论坛内容放入单独的包中。那么拍卖的东西和用户的东西也应该是一个单独的包。
顺便说一句:你没有提到招标服务。似乎只是模仿这些对象的概念并不存在于空气中,它们实际上被某些软件使用。在这种情况下,请将其删除。
答案 1 :(得分:1)
我基本同意之前的受访者,所以我只会提出差异和其他意见。
为了更准确一点,“可以创建......”应该使用依赖关系(而不是使用)来描述。
6.-9。因此,不存在Auction或Item对象。以一种方式放松关系并使用合成或将这两者合并为一个类或创建关联类。
也许一个类别可以包含多个子类别?如果为true,请编辑相应的多重性。
与4.相同,查看其他答案。
还要重新考虑设计中的课程数量。类不只是数据持有者,他们应该有行为。 AttributeOption或Attribute或BusinessContact等的行为是什么? getter和setter不计入某个行为...我猜你计划在BidingService中拥有所有这些行为,所以我建议你删除它并根据哪个类对象应该对通过各自的方法。