我的应用程序中有一个抽象类(我们称之为BaseRule
)。 BaseRule
实现Comparable
接口,并包含一个抽象方法签名public abstract int getExecOrder()
。
在类中方法的BaseRule
实现中,返回值用于比较对象。compareTo()
BaseRule
getExecOrder()
目前我有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
.
关于更好实施的任何想法?
潇湘沐
森栏
相关分类