表示对象中的优先级/偏好的最佳方式是什么?

2024-01-10

在域中建模优先级/偏好的最佳方法是什么?
例如。假设我有一堂课Person代表一个人并有一些偏好,例如PersonX喜欢披萨、意大利面和煎蛋卷,实际上他更喜欢意大利面而不是披萨。
如何对这些进行最佳建模?
第一个想法就是把它们放在一个List(作为成员变量Person)根据插入顺序保持偏好,例如列表中的第一个是最喜欢的,然后列表中的第二个是第二个最喜欢的,等等,但在我看来,这最终太乏味了。例如。当我想要搜索或关联偏好等时。
也许有一个解决此类问题的标准方法?


您可以按照您的建议使用该列表,并向 Person 类添加一个方法,该方法将返回Comparator<Preference>这将能够比较该人的 2 个偏好:

Person somebody.addPreference(pizzaPreference);
Person somebody.addPreference(omelettePreference);
....
Comparator<Preference> c = somebody.getPreferenceComparator();
boolean prefersPizzaOverOmelette = (c.compare(pizzaPreference, omelettePreference) > 0);
boolean hasNoPreferenceBetweenPizzaAndOmelette = (c.compare(pizzaPreference, omelettePreference) == 0);

比较器将简单地检查列表中首选项的索引(如果它包含该首选项等)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

表示对象中的优先级/偏好的最佳方式是什么? 的相关文章

随机推荐