很抱歉问这个,但我真的可以使用新的PoV。已经坐了好几天了,不能绕过它。
基本上,我有一个Class Screw
,其对象具有长度,材质等属性。它还节省了螺丝的数量和这个量的重量。
所以基本上它设置Screw1 = 1cm, Steel, 200 Screws, 10kg
(当然不是那样,但为了简单起见)
这些螺丝对象应保存在存储单元中,并进行分类。所以每个属性组合都有自己的空间来保存。它受重量的限制,所以如果你添加25公斤的螺丝,你需要两个存储空间,创建一个新的box
来存储它们。 / p>
如果盒子的重量低于0并从新盒子中取出剩余的螺丝,也可以取出螺丝,取出存放空间。
public class Schraube {
private int schraubenArt,Material,SchraubenAnzahl, Entnahmeprotokoll;
private double durchmesser,laenge, gangHoehe,gaengigkeit,gewicht;
// lots of constructors and methods for calculations
}
我还有一个存储类,它会遍历Schraube
的所有可能组合,然后.add()
将它们传递给ArrayList,从而赋予它最大权重。
现在,你会怎么做呢?如果体重超过20公斤,你如何添加Stoagespaces
?如果没有创建大量的561个空格乘以7,那么如何有效地做到这一点?
我希望我有点清楚我想做什么。头疼,我再也想不出来了。
答案 0 :(得分:0)
我建议不要创建存储类,因为Schraube类不代表单个实体,而是多个实体的属性。在这种情况下,您要设置代表螺钉的类中的螺钉数量。这个问题有两种解决方案。
创建一个计算存储空间数的getter方法。
public int getNumberOfStorageSpaces(){ .... //计算逻辑 return numberOfStorageSpaces; }
或者您可以将类型实体与数量分开。在这种情况下,您将从Schraube类中删除SchraubenAnzahl属性,创建另一个实体,该实体封装称为Schrauben的螺钉的类型和数量。然后,您需要一个表示空间及其可容纳数量的StorageSpace实体。最后,您需要一个表示螺钉和存储空间之间关系的实体。这将是一个更复杂的解决方案。为了更好地理解该问题,我建议使用实体关系图来更好地说明实体之间的关系。