我知道基本知识,但不知道如何建模(这是一个没有提供解决方案的练习):
一份订单可以装一箱或更多箱啤酒。每个纸箱包含6瓶同类型的啤酒,但也有一些由3种不同类型的啤酒组成(共6种)。
也有一个“纸箱”类,我如何使它的方式,要么6啤酒(相同的)或6啤酒3种不同类型?
发布于 2013-11-01 10:42:31
您可以使用xor contstraint来建模独占或。如果你真的知道基本知识,你应该已经看到它了。
其余的都很简单。您有一个订单类,它有一个或多个纸箱(1.*)。您可以使用聚合来建模这个关联,但是它没有被精确地指定。然而,这不是一个成分,因为纸箱可以肯定地存在于他们自己。
如何对纸箱建模有多种解决方案。我首先想到的是把纸箱分成两种。一种是单种啤酒,一种是多种啤酒。两者都是从使用泛化的抽象类派生出来的。订单只与抽象纸箱类相关联。
啤酒的特点是,你也可以把它分割成一个抽象的类和它派生的啤酒类型,但是这里并不需要这样做。所以你可以创建三个不同的啤酒类。第一盒(单啤酒类型)与所有三个啤酒类相关联,具有多重性6,并受三个关联之间的xor约束。另一个纸箱(三种啤酒类型)也与所有三种啤酒类型相关联。但是,您不需要xor约束,每个关联的多重性为2。
肯定有更优雅的方法来模拟这个模型,但是这个方法至少应该被认为是正确的。
https://softwareengineering.stackexchange.com/questions/215682
复制相似问题