سؤال

I have a list of objects which implement Comparable.

I want to sort this list and that is why I used the Comparable.

Each object has a field, weight that is composed of 3 other member int variables.

The compareTo returns 1 for the object with the most weight.
The most weight is not only if the

weightObj1.member1 > weightObj2.member1  
weightObj1.member2 > weightObj2.member2  
weightObj1.member3 > weightObj2.member3

but actually is a little more complicated and I end up with code with too many conditional ifs.

If the weightObj1.member1 > weightObj2.member1 holds then I care if weightObj1.member2 > weightObj2.member2.

and vice versa.

else if weightObj1.member2 > weightObj2.member2 holds then I care if weightObj1.member3 > weightObj2.member3 and vice versa.

Finally if weightObj1.member3 > weightObj2.member3 holds AND if a specific condition is met then this weightObj1 wins and vice versa

I was wondering is there a design approach for something like this?

لا يوجد حل صحيح

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top