我的应用程序中有一个抽象类(我们称之为BaseRule)。 BaseRule实现Comparable接口,并包含一个抽象方法签名public abstract int getExecOrder()。
在类中方法的BaseRule实现中,返回值用于比较对象。compareTo()BaseRulegetExecOrder()
目前我有3个BaseRule类的具体实现,每个实现getExecOrder()方法
BaseRule让类实现Comparable接口的最终目的是将BaseRule对象集合传递给一个实用程序,该实用程序需要对这些对象进行排序以确保它们以正确的顺序执行。
在这种情况下,执行顺序只在 Class 级别很重要,这意味着BaseRuleA必须在执行 any 之前BaseRuleB执行 every ,但是 everyBaseRuleB实际上“等于”every other BaseRuleB,因此处理这些BaseRuleB对象的顺序无关紧要
我的问题是,有没有更好的方法来比较这些对象而不是使用(我想出的)getExecOrder()方法?
现在,我只有 3 个具体的实现,BaseRule所以很容易将返回值 1,2,3 分配给这些getExecOrder()方法调用,但是如果另一个开发人员添加了新的BaseRule实现,他们将不得不扫描所有现有的实现,并且(可能)更新所有类中的那些返回值以适应新的BaseRule.
关于更好实施的任何想法?
潇湘沐
森栏
相关分类